let socket = WebSocket(url: NSURL(string: "UrlHere:port/")!) socket.delegate = self; socket.connect() if socket.isConnected { print("websocket is connected") } func websocketDIDConnect(ws: WebSocket) { print("websocket is connected") } func websocketDIDdisconnect(ws: WebSocket,error: NSError?) { if let e = error { print("websocket is disconnected: \(e.localizedDescription)") } else { print("websocket disconnected") } } func websocketDIDReceiveMessage(ws: WebSocket,text: String) { print("Received text: \(text)") } func websocketDIDReceiveData(ws: WebSocket,data: NSData) { print("Received data: \(data.length)") } func websocketDIDReceivePong(socket: WebSocket) { print("Got pong!") }解决方法 套接字应该是您的类的属性或变量,以确保它附近.
如果仅在函数堆栈上分配它,它将超出范围,并且永远不会调用委托
以下是我在项目中使用的代码,以防万一
import UIKit//import WebSocketimport Starscreamclass VIEwController: UIVIEwController,WebSocketDelegate,WebSocketPongDelegate { @IBOutlet weak var wsURL: UITextFIEld! @IBOutlet weak var wsConsole: UITextVIEw! @IBOutlet weak var wsMessage: UITextFIEld! var socket:WebSocket! overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad()// var webSocketobj:WebSocket = WebSocket()// webSocketobj.ipAddresstext = "10.12.1.101"// webSocketobj.portText = "8888"// webSocketobj.dataToSendText = "hi"// webSocketobj.dataRecIEvedTextVIEw = ""// webSocketobj.connectedLabel = ""// webSocketobj.connectToServer() wsURL.text="ws://10.12.1.101:8888/" wsMessage.text="Hi" self.navigationItem.leftbarbuttonItem?.title="Connect" self.navigationItem.rightbarbuttonItem?.enabled=false // Do any additional setup after loading the vIEw,typically from a nib. } func websocketDIDConnect(socket: WebSocket){ wsConsole.text = wsConsole.text .stringByAppendingString("\n websocket got connected") self.navigationItem.leftbarbuttonItem?.title="disconnect" self.navigationItem.rightbarbuttonItem?.enabled=true } func websocketDIDdisconnect(socket: WebSocket,error: NSError?){ wsConsole.text = wsConsole.text .stringByAppendingString("\n websocket got disconnected") self.navigationItem.leftbarbuttonItem?.title="Connect" self.navigationItem.rightbarbuttonItem?.enabled=false } func websocketDIDReceiveMessage(socket: WebSocket,text: String){ wsConsole.text = wsConsole.text .stringByAppendingString("\n websocket got a message from server:").stringByAppendingString(text) } func websocketDIDReceiveData(socket: WebSocket,data: NSData){ print("websocket received data",data) } @IBAction func writeText(sender: UIbarbuttonItem) { wsConsole.text = wsConsole.text .stringByAppendingString("\n ClIEnt sent a message:").stringByAppendingString(wsMessage.text!) socket.writeString(wsMessage.text!) self.vIEw .endEditing(true) } @IBAction func disconnect(sender: UIbarbuttonItem) { self.vIEw .endEditing(true) if socket == nil{ connect(sender) } else if socket.isConnected { socket.disconnect() } else { connect(sender) } } func connect(sender:UIbarbuttonItem){ socket = WebSocket(url: NSURL(string:wsURL.text!)!) socket.delegate = self socket.connect() } func websocketDIDReceivePong(socket: WebSocket){ wsConsole.text = wsConsole.text .stringByAppendingString("\n websocket received pong") } overrIDe func dIDReceiveMemoryWarning() { super.dIDReceiveMemoryWarning() // dispose of any resources that can be recreated. }}
这是link到故事板,以防万一你想要
总结以上是内存溢出为你收集整理的ios – 红蜘蛛代表没有被召集全部内容,希望文章能够帮你解决ios – 红蜘蛛代表没有被召集所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)