123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- //
- // LMWebSocket.swift
- // LampMind
- //
- // Created by weclouds on 2019/8/5.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- import Starscream
- @objc protocol LMWebSocketDelegeate : NSObjectProtocol{
- /** websocket 连接成功*/
- @objc optional func lm_websocketDidConnct(_ sock:LMWebSocket)
- /** websocket 断开连接*/
- @objc optional func lm_websockDidDisconnect(_ sock:LMWebSocket,error:Error?)
- /**接受文字信息*/
- @objc optional func lm_websocketDidReceiveMessage(_ socket:LMWebSocket,text:String)
- /** 接收二进制信息*/
- @objc optional func lm_websocketDidReceiveData(_ socket: LMWebSocket,data:Data)
- }
- class LMWebSocket: NSObject ,WebSocketDelegate{
-
- var socket : WebSocket?
-
- weak var webSocketDelegate :LMWebSocketDelegeate?
- //单例
- class func shareInsatance() -> LMWebSocket {
- return manager
- }
-
- static let manager : LMWebSocket = {
- return LMWebSocket()
- }()
-
-
- //连接服务器
- func connectSever(_ url:String) {
- socket = WebSocket(url: URL(string: url)!)
- socket?.delegate = self
- socket?.connect()
- }
- //写入指令
- func writeCmd(_ cmd:String) {
-
- socket?.write(string: cmd, completion: {
- log.debug("写入成功")
- })
- }
- func reconnect() {
- socket?.connect()
- }
- //发送文字消息
- func sendBrandStr(_ brandID: String) {
- socket?.write(string: brandID)
- }
- //MARK :关闭消息
- func disconnect() {
- socket?.disconnect()
- }
-
- func websocketDidConnect(socket: WebSocketClient) {
- log.debug("成功连接了 --- \(socket)")
- webSocketDelegate?.lm_websocketDidConnct?(self)
- }
-
- func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
- log.debug("断开连接了 --- \(socket) ,error --\(error.debugDescription)")
- disconnect()
- if webSocketDelegate != nil && (webSocketDelegate?.responds(to: #selector(LMWebSocketDelegeate.lm_websockDidDisconnect(_:error:)))) == true {
- webSocketDelegate?.lm_websockDidDisconnect?(self, error: error)
- }
-
- }
-
- func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
- log.debug("LMWebSocket - 接收到的信息-- \(text)")
- webSocketDelegate?.lm_websocketDidReceiveMessage?(self, text: text)
- }
-
- func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
- log.debug("接收到二进制数据 ----\(data)")
- webSocketDelegate?.lm_websocketDidReceiveData?(self, data: data)
- }
-
- }
|