Swift-websocket集成开发(更新到Swifi3.0)

# ©版权声明:本文为Andy_wangpeng原创文章,未经允许不得转载。
#如需转载请注明版权 

每当小编再开发中遇到了困难,在网上搜,简直是垃圾堆里找金子。国内网站真的全不可靠,最后翻墙去国外网站寻找,才可以找到。找到了写websocket文章,同事找到了集成的框架文件,一个叫Starscream的第三方库,附上github地址『去看下->Starscream』
最近,开发中要使用WebSockrt,做到实时监控消息,需要用的技术是websocket。
什么原理什么的。我就不说了,自己百度下也行,是在不行给你们几个链接自己去看吧

1.先认识什么是WebSocket

   WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。
在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

2.集成WebSocket?

小编的是Xcode8.0 Swift3.0,在这里小编采用cocoaPod下载的

1.cocopod下载代码: (projectName ):他是你工程更的名字,记得更换不要写错.
  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

 `##注意:更新完了会报错用命令转下即可,不懂的再问我`
屏幕快照 2016-12-02 09.34.01.png
2. 下载完成后,导入 import Starscream 首先写一个单例,实现一些方法
    //
    //  Created by 王鹏 on 16/9/22.
    //  Copyright © 2016年 鼎商动力. 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 接受二进制信息*/
    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:- 链接服务器
  func connectSever(){
    socket = WebSocket(url: NSURL(string: 你的URL网址如:ws://192.168.3.209:8080/shop))
    socket.delegate = self
    socket.connect()
   }

   //发送文字消息
   func sendBrandStr(brandID:String){
    socket.writeString(brandID))
  }
  //MARK:- 关闭消息
  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数据")
    webSocketDelegate?.websocketDidReceiveData!(self, data: data)
      }
   }
3.在别处,实现代理方法,用这个类调用就可以 如:
  • 先声明下


    声明.png
  • 代理实现,在这里小编写了个extension,你可以不写,只是为了代码分区


    delegate.png
  • 链接websocket接收到消息,代理会打印消息的


    链接websocket.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,575评论 16 22
  • 创业是很多人的梦想,多少人为了理想和不甘选择了创业来实现自我价值,我就是其中一个。 创业后,我由女人变成了超人,什...
    亦宝宝阅读 1,878评论 4 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,616评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 2,778评论 1 1