[英]https://websocket not connect android
I have connect socket http://(with port)
url is complete and working but I have connect https://(without port)
not working in Java-WebSocket. 我有连接套接字
http://(with port)
url已完成并正常工作,但我已连接https://(without port)
无法在Java-WebSocket中工作。
I use gradle dependency 'org.java-websocket:Java-WebSocket:1.3.0' 我使用gradle依赖'org.java-websocket:Java-WebSocket:1.3.0'
WebSocketClient mWebSocketClient = new WebSocketClient(uri) {
@Override
public void onOpen(ServerHandshake serverHandshake) {
Log.e(TAG, "Websocket: " + "Opened");
mWebSocketClient.send("Hello from " + Build.MANUFACTURER + " " + Build.MODEL);
}
@Override
public void connect() {
super.connect();
//Log.e(TAG, "Websocket: " + "connect");
SharedPreference.storeValue(mContext, SharedPreference.WEB_SOCKET_STATUS, SharedPreference.WEB_SOCKET_CONNECT);
}
}
I find a solution!) If you want to use wss:// you should set setWebSocketFactory .. Just like this: 我找到了一个解决方案!)如果你想使用wss://你应该设置setWebSocketFactory ..就像这样:
public void connect() {
final String url = "wss://echo.websocket.org";
URI uri=null;
try{
uri = new URI(url);
}
catch (URISyntaxException e)
{
Log.e(TAG, e.getMessage());
return;
}
mWebSocketClient = new WebSocketClient(uri) {
@Override
public void onOpen(ServerHandshake handshakedata) {
Log.e(TAG,"Connected!");
}
@Override
public void onMessage(String message) {
Log.e(TAG,"Message: "+message);
}
@Override
public void onClose(int code, String reason, boolean remote) {
Log.e(TAG,"Disconnected!");
}
@Override
public void onError(Exception ex) {
Log.e(TAG,"Error: "+ex.getMessage());
}
};
if (url.indexOf("wss") == 0) {
try {
SSLContext sslContext = SSLContext.getDefault();
mWebSocketClient.setWebSocketFactory(new DefaultSSLWebSocketClientFactory(sslContext));
} catch (Exception e) {
e.printStackTrace();
}
}
mWebSocketClient.connect();
}
Check your manifest: 检查您的清单:
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission
Please post Log Cat! 请发布Log Cat!
Websocket有自己的协议ws://
或wss://
(类似于http://
, https://
),尝试使用这些协议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.