• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

第十篇、Swift--WebSocket

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

 

思路:

  WebSocket写的接口报头有一段XML,这个是约定俗成的一种格式

  1.客户端在请求服务端数据的时候,就必须按照这种格式来发送请求

 

1.先认识什么是WebSocket

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

  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)
    }
 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift4.2中字符串按照字符存成数组(字符串转数组)发布时间:2022-07-13
下一篇:
Swift互斥锁写法发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap