我的目标是什么:
我想连接到一个名为socket.io的套接字,该名称空间中包含一个来自Android的连接参数。例如,我想使用参数“token”和值“1234567890abc”连接到https://www.socket.com/messages/。
到目前为止我所知道的事情:
套接字完全适用于Web客户端和IOS客户端。 IOS客户端使用以下代码:
self.socketClient = SocketIOClient(socketURL: NSURL(string: APIManager.sharedManager.baseURL)!, options: [.Log(true), .Path(chat), .ConnectParams(["token":token])])
self.turnOnAllInitialListeners()
self.socket.connect()
你看不出任何幻想。这是值:
[0] : log
- Log : false
▿ [1] : path
- Path : "/server-x/"
▿ [2] : secure
- Secure : true
▿ [3] : connectParams
▿ ConnectParams : 1 elements
▿ [0] : 2 elements
- .0 : "token"
- .1 : bXByAFX7vYMERLyOBIgbP50ufPMOPKv
这种联系是成功的,我一直试图用这种方法在Android中实现相同的目标:
String url = "https://demo.test.test.nl";
IO.Options opts = new IO.Options();
opts.query = "token=bXByAFX7vYMERLyOBIgbP50ufPMOPKv";
// Tried on and off
// opts.path = "/server-x";
try {
opts.sslContext = SSLContext.getDefault();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
try {
Manager manager = new Manager(new URI(url), opts);
// Tried on and off
mSocket = manager.socket("/server-x");
} catch (URISyntaxException e) {
Log.e(TAG, "Could not connect to socket server");
}
setConnectionListeners();
setChatListeners();
// Connected always returns into false.
mSocket.connect();
命名空间,路径或令牌没有任何问题。也尝试没有SSL部分和有和没有单独的经理。此外,代码不会在其中一个捕获中结束。怎么可能出错?所有帮助表示赞赏。谢谢你的阅读。