私が作っているアプリケーション用にJavaサーバーをセットアップしました。 Javaサーバーは、新しいクライアントを接続しようとします。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();
}
Androidでは、Socketクラスを使用していますが、問題はありません。 AWS上のEC2で実行されているJavaサーバーのエンドポイントに接続しても問題はありません。しかし、私が見つけたものから、第三者のライブラリが非常にお勧めしており、私はStarscream(現時点では)を使用して解決しました。
私は、単純な接続の例(Starscream githubページのもの)を動作させることができません。 thisのようなローカルサーバをNode.jsでセットアップするチュートリアルがありますが、私は既にかなり単純なサーバーを持っているので、それに慣れることはありません。
は、ここに私の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
、それは出力:
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
は、Java ServerSocketのにスタースクリームのWebSocketをからの接続に問題のいくつかの種類がありますか?私は、他のケースでこのような問題を示唆するものを少し読んだが、ソケットの基本的な実装についてはほとんど知らなかった。
私はちょうどあなたのリンクを見て始めましたが、これは私が探していた道です。ありがとう! – Xenalin