在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
每当小编再开发中遇到了困难,在网上搜,简直是垃圾堆里找金子。国内网站真的全不可靠,最后FQ去国外网站寻找,才可以找到。找到了写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) } }
|
请发表评论