J'ai configuré un serveur Java pour une application que je suis en train de créer. Le serveur Java prend de nouveaux clients tentent de se connecter:Impossible de connecter Starscream WebSocket à Java ServerSocket
//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();
}
Sur Android, je viens d'utiliser la classe Socket et je n'ai pas de problème. Il se connecte à l'extrémité de mon serveur Java fonctionnant sur EC2 sur AWS et je n'ai aucun problème. Cependant, avec iOS, d'après ce que j'ai trouvé, les bibliothèques tierces sont très recommandées et j'ai décidé d'utiliser Starscream (pour le moment).
Je n'arrive pas à faire fonctionner l'exemple de connexion simple (celui de la page github de Starscream). Il existe des tutoriels tels que this qui configurent un serveur local avec Node.js mais je préfère ne pas en parler parce que j'ai déjà un serveur assez simple de toute façon.
Voici mon code swift:
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
et sorties:
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
Y at-il une sorte de problème avec la connexion de Starscream WebSockets à Java ServerSocket? J'ai lu des bribes de choses qui suggèrent de tels problèmes dans d'autres cas, mais je connais à peine l'implémentation sous-jacente des sockets.
Je viens juste de commencer à regarder à travers vos liens, mais c'est le chemin que je cherchais. Merci! – Xenalin