Ich habe einen Java-Server-Setup für eine App, die ich mache. Der Java-Server nimmt neue Kunden, wie sie versuchen, eine Verbindung:Ich kann Starscream WebSocket nicht mit Java ServerSocket verbinden
//Continuously accept new user clients
try(ServerSocket serverSocket = new ServerSocket(portNumber)){
while(!Thread.currentThread().isInterrupted()){
//I do some stuff here
...
//Then accept the socket
Socket s = serverSocket.accept();
//Then I do stuff with s; the user is connected
...
}
} catch (IOException e) {
System.err.println("Could not listen on port "+portNumber);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
Auf Android, ich habe gerade die Socket-Klasse verwenden und ich habe keine Probleme. Es verbindet sich mit dem Endpunkt meines Java-Servers, der auf EC2 auf AWS läuft, und ich habe keine Probleme. Allerdings, mit iOS, von dem, was ich gefunden habe, sind 3rd-Party-Bibliotheken sehr zu empfehlen und ich habe beschlossen, Starscream (für den Moment) zu verwenden.
Ich kann das einfache Verbindung Beispiel nicht funktionieren (das auf der Starscream github Seite). Es gibt Tutorials wie this, die einen lokalen Server mit Node.js einrichten, aber ich möchte lieber nicht darauf eingehen, da ich sowieso schon einen Server habe, der "ziemlich einfach ist".
Hier ist mein SWIFT-Code:
class ViewVontroller: UIViewController, WebSocketDelegate{
var socket = WebSocket(url: URL(string: "ec2-12-345-678-910.compute-1.amazonaws.com/:4922/")!)
override func viewDidLoad(){
super.viewDidLoad()
socket.delegate = self
print("connecting")
socket.connect()
print("should've connected")
}
... //The rest of the protocol is implemented below with simple print statements as the body
und es gibt:
connecting
should've connected
[timestamp/project name...] [] nw_connection_get_connected_socket_block_invoke 1 Connection has no connected handler
Websocket disconnected: The operation couldn't be completed. Operation timed out
Gibt es irgendeine Art von Problem mit von Starscream WebSockets zu einem Java-Serversocket verbinden? Ich habe Teile von Dingen gelesen, die solche Probleme in anderen Fällen vorschlagen, aber ich weiß kaum etwas über die zugrunde liegende Implementierung von Sockets.
Ich habe gerade erst angefangen, Ihre Links durchzusehen, aber das ist der Pfad, nach dem ich gesucht habe. Vielen Dank! – Xenalin