Die Variable ist nicht Null, ich habe eine gute Verbindung und die URL ist korrekt, aber keine Delegate-Methoden aufgerufen werden. Auch ich implementiere WebSocketDelegateStarscream-Delegierte werden nicht aufgerufen
6
A
Antwort
8
Socket sollte eine Eigenschaft oder eine Variable Ihrer Klasse sein, um sicherzustellen, dass es herum haftet.
Wenn Sie es nur auf eine Funktion stapeln zuteilen wird es außerhalb des Bereichs fallen und die Delegierten werden nie
Hier gecallt ist der Code, den ich in meinem Projekt verwendet haben, nur für den Fall
import UIKit
//import WebSocket
import Starscream
class 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.
}
}
Hier ist die link auf Storyboard nur für den Fall, wenn Sie wollen
Verwandte Themen
- 1. Skripte werden nicht aufgerufen
- 2. Ereignishandler werden nicht aufgerufen? - wxWidgets
- 3. Containerbefehl konnte nicht aufgerufen werden
- 4. SharePoint-Zeitgeberaufträge werden nicht aufgerufen
- 5. Mitgliederfunktionen können nicht aufgerufen werden
- 6. Methoden für Char können nicht aufgerufen werden
- 7. eckigen Service nicht aufgerufen werden. Dann()
- 8. Klassenkonstruktoren kann nicht ohne ‚neue‘ aufgerufen werden
- 9. AngularJS: $ ressource benutzerdefinierte Methoden werden nicht aufgerufen
- 10. Warum ist presentationController nicht: viewControllerForAdaptivePresentationStyle: aufgerufen werden?
- 11. Wann würde entsorgen Methode nicht aufgerufen werden?
- 12. Backbone-Routen, die nicht aufgerufen werden
- 13. Swift: Wertverändernde Steuerereignisse werden nicht aufgerufen?
- 14. Funktion kann nicht mit Ajax aufgerufen werden
- 15. Delegierte Methoden werden nicht aufgerufen? (CoreBluetooth)
- 16. Signal R Client Methoden werden nicht aufgerufen
- 17. Javascript kann nicht von Codebehind aufgerufen werden
- 18. URLConnection Delegate-Methoden werden nicht aufgerufen
- 19. ASP.NET Javascript Converter scheint nicht aufgerufen werden
- 20. Scrapypipeline spider_opened und spider_closed nicht aufgerufen werden
- 21. Formular senden Handler nicht aufgerufen zu werden
- 22. jQueryUI - nicht abgefangene Ausnahme: Methoden können nicht aufgerufen werden
- 23. Wann SQLite Bereinigungsfunktionen aufgerufen werden?
- 24. Wann WebResponse.Close() aufgerufen werden soll
- 25. swipeGesture, touchMoved werden sametime aufgerufen?
- 26. Wann soll super.onPause() aufgerufen werden?
- 27. DropCreateDatabaseAlways Seed nicht aufgerufen
- 28. should nicht aufgerufen wird
- 29. OnBackPressed wird nicht aufgerufen?
- 30. IBAction wird nicht aufgerufen
Socket ist eine Member-Variable der Klasse, die ich annehmen, und keine Variable lokal zu einer Methode? – Gruntcakes
Making it eine Eigenschaft mein Problem behoben. Danke – user1079052