Android 用に開発された websocket クライアント ライブラリのいくつかを試しています。現在、AutoBahn ライブラリをいじっていますが、「サンプル」クライアントをサーバーに接続できないようです。次のコードを使用しています。
try {
mConnection.connect(wsuri, new WebSocketHandler() {
@Override
public void onOpen() {
Log.d(TAG, "Status: Connected to " + wsuri);
mConnection.sendTextMessage("info");
}
@Override
public void onTextMessage(String payload) {
Log.d(TAG, "Got echo: " + payload);
}
@Override
public void onClose(int code, String reason) {
Log.d(TAG, "Connection lost.");
}
});
} catch (WebSocketException e) {
Log.d(TAG, e.toString());
}
Wireshark を使用してスニッフィングすると、tcp 接続が確立されていることがわかります。HTTP Get が送信されていることがわかります。しかし、サーバーがアップグレード メッセージで応答しません。AutoBahn 接続メッセージ (HTTP GET ヘッダー内) に何らかの理由で origin フィールドが含まれていないことに気付きました。接続した別のライブラリを試してみましたが、HTTP GET に origin フィールドがありました。これは既知の問題ですか、それとも AuotBahn でサポートされていないだけですか?