Swift-websocket集成開(kāi)發(fā)(更新到Swifi3.0)

# ?版權(quán)聲明:本文為Andy_wangpeng原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載报亩。
#如需轉(zhuǎn)載請(qǐng)注明版權(quán) 

每當(dāng)小編再開(kāi)發(fā)中遇到了困難,在網(wǎng)上搜井氢,簡(jiǎn)直是垃圾堆里找金子弦追。國(guó)內(nèi)網(wǎng)站真的全不可靠,最后翻墻去國(guó)外網(wǎng)站尋找花竞,才可以找到劲件。找到了寫(xiě)websocket文章,同事找到了集成的框架文件左胞,一個(gè)叫Starscream的第三方庫(kù)寇仓,附上github地址『去看下->Starscream』
最近,開(kāi)發(fā)中要使用WebSockrt烤宙,做到實(shí)時(shí)監(jiān)控消息遍烦,需要用的技術(shù)是websocket。
什么原理什么的躺枕。我就不說(shuō)了服猪,自己百度下也行,是在不行給你們幾個(gè)鏈接自己去看吧

1.先認(rèn)識(shí)什么是WebSocket

   WebSocket protocol 是HTML5一種新的協(xié)議拐云。它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信(full-duplex)罢猪。
在 WebSocket API,瀏覽器和服務(wù)器只需要要做一個(gè)握手的動(dòng)作叉瘩,然后膳帕,瀏覽器和服務(wù)器之間就形成了一條快速通道。兩者之間就直接可以數(shù)據(jù)互相傳送。

2.集成WebSocket?

小編的是Xcode8.0 Swift3.0,在這里小編采用cocoaPod下載的

1.cocopod下載代碼: (projectName ):他是你工程更的名字危彩,記得更換不要寫(xiě)錯(cuò).
  platform :ios, '8.0'
  use_frameworks!
  def pods
  pod 'Starscream', :git => 'https://github.com/daltoniam/Starscream.git', :branch => 'swift3' 
  end
  target 'projectName' do
  pods
  end

 `##注意:更新完了會(huì)報(bào)錯(cuò)用命令轉(zhuǎn)下即可攒磨,不懂的再問(wèn)我`
屏幕快照 2016-12-02 09.34.01.png
2. 下載完成后,導(dǎo)入 import Starscream 首先寫(xiě)一個(gè)單例汤徽,實(shí)現(xiàn)一些方法
    //
    //  Created by 王鵬 on 16/9/22.
    //  Copyright ? 2016年 鼎商動(dòng)力. All rights reserved.
    //

    import UIKit
    import Starscream
   @objc public protocol DSWebSocketDelegate: NSObjectProtocol{
    /**websocket 連接成功*/
    optional func websocketDidConnect(sock: DSWebSocket)
    /**websocket 連接失敗*/
    optional  func websocketDidDisconnect(socket: DSWebSocket, error: NSError?)
    /**websocket 接受文字信息*/
    func websocketDidReceiveMessage(socket: DSWebSocket, text: String)
    / **websocket 接受二進(jìn)制信息*/
    optional  func  websocketDidReceiveData(socket: DSWebSocket, data: NSData)
    }
  public class DSWebSocket: NSObject,WebSocketDelegate {
    var socket:WebSocket!
    weak var webSocketDelegate: DSWebSocketDelegate?
    //單例
    class func sharedInstance() -> DSWebSocket
    {
        return manger
    }
    static let manger: DSWebSocket = {
        return DSWebSocket()
    }()

    //MARK:- 鏈接服務(wù)器
  func connectSever(){
    socket = WebSocket(url: NSURL(string: 你的URL網(wǎng)址如:ws://192.168.3.209:8080/shop))
    socket.delegate = self
    socket.connect()
   }

   //發(fā)送文字消息
   func sendBrandStr(brandID:String){
    socket.writeString(brandID))
  }
  //MARK:- 關(guān)閉消息
  func disconnect(){
      socket.disconnect()
  }

  //MARK: - WebSocketDelegate
  public func websocketDidConnect(socket: WebSocket){
      debugPrint("連接成功了: \(error?.localizedDescription)")
      webSocketDelegate?.websocketDidConnect!(self)
  }
  public func websocketDidDisconnect(socket: WebSocket, error: NSError?){
    debugPrint("連接失敗了: \(error?.localizedDescription)")
    webSocketDelegate?.websocketDidDisconnect!(self, error: error)
  }
  //注:一般返回的都是字符串
  public func websocketDidReceiveMessage(socket: WebSocket, text: String){
   debugPrint("接受到消息了: \(error?.localizedDescription)")
        webSocketDelegate?.websocketDidReceiveMessage!(self, text: text)
  }
  public func websocketDidReceiveData(socket: WebSocket, data: NSData){
    debugPrint("data數(shù)據(jù)")
    webSocketDelegate?.websocketDidReceiveData!(self, data: data)
      }
   }
3.在別處,實(shí)現(xiàn)代理方法娩缰,用這個(gè)類(lèi)調(diào)用就可以 如:
  • 先聲明下


    聲明.png
  • 代理實(shí)現(xiàn),在這里小編寫(xiě)了個(gè)extension谒府,你可以不寫(xiě)拼坎,只是為了代碼分區(qū)


    delegate.png
  • 鏈接websocket接收到消息,代理會(huì)打印消息的


    鏈接websocket.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末完疫,一起剝皮案震驚了整個(gè)濱河市泰鸡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壳鹤,老刑警劉巖鸟顺,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異器虾,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蹦锋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)兆沙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人莉掂,你說(shuō)我怎么就攤上這事葛圃。” “怎么了憎妙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵库正,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我厘唾,道長(zhǎng)褥符,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任抚垃,我火速辦了婚禮喷楣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鹤树。我一直安慰自己铣焊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布罕伯。 她就那樣靜靜地躺著曲伊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪追他。 梳的紋絲不亂的頭發(fā)上坟募,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天岛蚤,我揣著相機(jī)與錄音,去河邊找鬼。 笑死切厘,一個(gè)胖子當(dāng)著我的面吹牛剩胁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播届腐,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蜂奸!你這毒婦竟也來(lái)了犁苏?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扩所,失蹤者是張志新(化名)和其女友劉穎围详,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體祖屏,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡助赞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袁勺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雹食。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖期丰,靈堂內(nèi)的尸體忽然破棺而出群叶,到底是詐尸還是另有隱情,我是刑警寧澤钝荡,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布街立,位于F島的核電站,受9級(jí)特大地震影響埠通,放射性物質(zhì)發(fā)生泄漏赎离。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一端辱、第九天 我趴在偏房一處隱蔽的房頂上張望蟹瘾。 院中可真熱鬧,春花似錦掠手、人聲如沸憾朴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)众雷。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砾省,已是汗流浹背鸡岗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留编兄,地道東北人轩性。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像狠鸳,于是被迫代替她去往敵國(guó)和親揣苏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 久違的晴天件舵,家長(zhǎng)會(huì)卸察。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí),離放學(xué)已經(jīng)沒(méi)多少時(shí)間了铅祸。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)坑质。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,522評(píng)論 16 22
  • 創(chuàng)業(yè)是很多人的夢(mèng)想,多少人為了理想和不甘選擇了創(chuàng)業(yè)來(lái)實(shí)現(xiàn)自我價(jià)值临梗,我就是其中一個(gè)涡扼。 創(chuàng)業(yè)后,我由女人變成了超人盟庞,什...
    亦寶寶閱讀 1,809評(píng)論 4 1
  • 今天感恩節(jié)哎壳澳,感謝一直在我身邊的親朋好友。感恩相遇茫经!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì)萎津,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,562評(píng)論 0 11
  • 可愛(ài)進(jìn)取卸伞,孤獨(dú)成精。努力飛翔锉屈,天堂翱翔荤傲。戰(zhàn)爭(zhēng)美好,孤獨(dú)進(jìn)取颈渊。膽大飛翔遂黍,成就輝煌。努力進(jìn)取俊嗽,遙望雾家,和諧家園∩芑恚可愛(ài)游走...
    趙原野閱讀 2,726評(píng)論 1 1