1. 程式人生 > >swift 實現websocket與後臺通訊(swift 如何構建簡單的json字串)

swift 實現websocket與後臺通訊(swift 如何構建簡單的json字串)

swift 語言在國內流傳度不是很廣,初學者者想找相關資料很困難,想去國外找資料又被牆了,本人才疏學淺,記錄下一些學習過程中的經驗,希望看完對你也有所幫助!

一個應用不可避免要與伺服器進行通訊,主要有,http 與 socket。(相關概念請自行google)

http暫時不論,我們先看看socket下面衍生的websocket,今天我就把自己怎麼利用websocket與伺服器進行互動記錄下來:

 首先你需要整合websocket到自己的專案,如果不明白如何整合,請看上一篇《swift整合websocket庫

整合websocket 到自己專案後還需要新增SwiftyJSON到自己專案,具體步驟和整合websocket一樣。

新增好類庫後我們就可以開始寫程式碼了!

首先開啟你專案,記得通過cocoapods生成的.xcworkspace檔案開啟專案。你會看到圖上所示的專案結構,在Pods裡面有我們新增進來的2個庫,如果沒有請參考上一篇部落格重新新增。(專案千萬不要有中文,否則新增庫後會有亂碼)

上一步沒有問題後,樓主考慮到保證websocket的唯一性,採用了單例的模式,申明我的websocket

import UIKit
import Starscream


class SingletonSocket {
    
    let socket:WebSocket = WebSocket(url: NSURL(string: "後臺伺服器的地址")!)
    
    class var sharedInstance : SingletonSocket{
        struct Static{
            static let instance:SingletonSocket = SingletonSocket()
        }
        if !Static.instance.socket.isConnected{
            Static.instance.socket.connect()
        }
        return Static.instance
    }
}

在你使用的類裡面一般是viewcotroller裡面,要記得先實現

WebSocketDelegate 這個介面

介面必須實現的函式,不實現會報錯

在viewDidLoad裡面設定websocket的回撥為在這個類實現的delegate,這樣就能接收到伺服器給我們返回的資料


接下來構建我們的請求引數,構建好後再用socket物件的writeString()傳送給伺服器


然後我們在回撥函式裡面列印一下伺服器返回的資料


當然實際開發中我們不會僅僅列印資料,你可以根據你的業務邏輯在這裡新增你自己的處理

最終實現後println打印出來的資料

這樣一個基本的使用websocket傳送json資料給後臺到接受返回的流程就OK了!

轉載請保留出處:

相關推薦

swift 實現websocket後臺通訊(swift 如何構建簡單json字串)

swift 語言在國內流傳度不是很廣,初學者者想找相關資料很困難,想去國外找資料又被牆了,本人才疏學淺,記錄下一些學習過程中的經驗,希望看完對你也有所幫助! 一個應用不可避免要與伺服器進行通訊,主要有,http 與 socket。(相關概念請自行google) http暫時

藉助事件匯流排框架(EventBus)實現FragmentActivity通訊

最開始學Android的時候,Fragment與Activity之間的通訊一直是比較讓人頭疼的部分。 所謂通訊,其實就是要讓Activity裡的某些成員資訊與Fragment共享(或者相反)。一個方法是藉助回撥介面,Fragment裡定義一個介面由Activity實現,Fragment裡獲取Ac

Java實現websocket微信小程式連線

微信的WebSocket介面和HTML5的WebSocket基本一樣,是HTTP協議升級來的,做為一個新的Socket在B/S上使用,它實現了瀏覽器與伺服器全雙工通訊。   在WebSocket出來之前,實現即時通訊通常使用Ajax來實現,而Ajax是通過輪詢的方式進行實時資料的獲

實現PythonSTM32通訊

  斷斷續續學了幾周Stm32後,突然想實現上位機和下位機的通訊,恰好自己學過一點python,便想通過python實現通訊. 首先在windows的CMD命令管理器中安裝pyserial,直接在CMD中鍵入如下字元 pip install pyserial 再將S

Ext分頁實現(前臺後臺)Spring+Mybatis

Ext分頁實現(前臺與後臺)Spring+Mybatis 一、專案背景   關於Ext的分頁網上有很多部落格都有提到,但是作為Ext新手來說,並不能很容易的在自己的專案中得以應用。因為,大多數教程以及部落格基本都是隻寫了前端的東西,而關於分頁演算法更多的應該是後臺。並且大多數資料庫的sql基

Fragment學習之使用介面回撥的方式實現FragmentActivity通訊

Fragment與Fragment之間可以進行資訊傳遞,同樣,Fragment與Activity也可以進行資訊的傳遞。 下面是一個演示在Activity中獲取來自Fragment的資訊,使用介面回撥的方法在Activity中接收資訊 MainActivity.java:

angular js 實現前臺後臺資料對接(Service $http)

一、service服務是什麼? 自我理解:服務是提供了一個應用整個生命週期中保持資料的方法。能在控制器中傳遞值,保持資料的一致性。服務是單利的,在專案中是被例項化一次,並且是用到的時候才被例項化。服務建立資料、儲存資料,與控制器之間緊密通訊。 $http

Android開發--後臺通訊(一)--API資料獲取

API網路請求 對於之前寫的2篇關於API的內容和JSON文字解析類,當然需要有著配套的網路請求配合安卓端請求和獲取資料,這篇部落格介紹與後臺通訊中網路的基本請求與API資料有關 準備 這裡我們使用現在封裝得比較好的包:okhttp 在配

HC-05實現電腦stm32通訊

        藍芽在通訊中代替的是串列埠通訊時的一根線,所以在串列埠通訊改藍芽通訊時無需更改程式碼,只需將藍芽連到微控制器上,注意若使用usart1,注意連線位置,之前我用的正點mini的板子,PA9、10用跳線帽和USB串列埠R和T連在一起,導致我把藍芽的R和Tlian連

Android 通訊之EventBus實現廣播Activity通訊

本章節講述 如何利用EventBus 實現Android廣播與Activity通訊  根據廣播接收到的內容更新Activity資料本章節中的廣播是極光推送操作別名和標籤的廣播程式碼1:@Override

VMware12虛擬機器實現上網主機通訊

主機環境: windows10 64bit 虛擬機器版本: 12 虛擬機器: CentOS 7 /minimal 參考一些網路上各位大牛的文章,一步步的實現了上網與主機通訊的2個功能,為以後的模擬

Java後端實現websocket微信小程式端連線簡單例子

} 以上是網上的前端及後端的程式碼(原文地址:http://www.cnblogs.com/xdp-gacl/p/5193279.html?utm_source=tuicool&utm_medium=referral),jdk版本要求是在jdk1.7.0以上,tomcat版本也需要在tomcat7.0

C++實現中英文UNICODE十六進位制字串互轉

之前搞過這個中英文與UNICODE十六進位制字串的互轉,但是發現有點小問題。現在重新搞了一個,測試中暫時沒有發現什麼問題。先記錄下來。 我嘗試使用過MultiByteToWideChar和WideCharToMultiByte來實現這個功能,但是發現不行。也就是無法實現如:

ajax 後臺互動後返回相應的字串

前臺 $.ajax({   type: "post",   url: "<c:url value='/office/word!getPostReportInfo.do' />",   data: {items: selectedItems.join('

後臺date型別轉換為json字串時,返回前臺頁面的是long time值問題解決

https://blog.csdn.net/zhanglf02/article/details/77770118問題頁面回顧: 本例環境和框架:maven工程+ssm框架+jdk1.7+tomcat7.0 解決方案: 解決方案分為兩種: 第一種:如果bo(實體類)對應的欄位(

iOS開發項目實戰——Swift實現圖片輪播瀏覽

0.10 上網 timer類 開發項目 cas hub string obj tle 近期開始開發一個新的iOS應用,自己決定使用Swift。進行了幾天之後,發現了一個非常嚴峻的問題。那就是無論是書籍,還是網絡資源,關於Swift的實在是太少了,隨便一

spring boot中使用websocket實現點對點通訊伺服器推送

WebSocket介紹    websocket是html中一種新的協議,它實現了真正的長連線,實現了瀏覽器與伺服器的全雙工通訊(指在通訊的任意時刻,線路上存在A到B和B到A的雙向訊號傳輸)。 現在我們接觸的協議大多是htttp協議,在瀏覽器中通過http協議實現了單向的通訊

小程式java實現websocket通訊

1.websocket類 /** * @ServerEndpoint 註解是一個類層次的註解,它的功能主要是將目前的類定義成一個websocket伺服器端, * 註解的值將被用於監聽使用者連線的終端訪問URL地址,客戶端可以通過這個URL來連線到WebSocket伺服器端 */ @Serv

Vue+Java servlet 通過websocket實現伺服器客戶端雙向通訊

1. vue程式碼 methods: { //在方法裡呼叫 this.websocketsend()傳送資料給伺服器 onConfirm () { //需要傳輸的資料 let data = { cod

Android Java_WebSocket實現後臺聊天通訊

轉載請帶上原著連線哦~~ 作者:Obj_class弄了2天做出來的聊天,真的是心痛,也沒什麼難得東西,主要還是不熟悉,就會出錯,很尷尬!先放鬆一下:來段舞蹈吧!WebSocket簡介WebSocket協議是基於TCP的一種新的網路協議。它實現了瀏覽器與伺服器全雙工(full-