okhttps icon indicating copy to clipboard operation
okhttps copied to clipboard

WebSocket 连接异常

Open q88qaz opened this issue 2 years ago • 6 comments

E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher Process: com.dppdkai.luckypandemo, PID: 10154 com.ejlchina.okhttps.internal.HttpException: WebSockt 连接异常: ws://myphp.com at com.ejlchina.okhttps.internal.WebSocketTask$MessageListener.onFailure(WebSocketTask.java:278) at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.java:570) at okhttp3.internal.ws.RealWebSocket$1.onResponse(RealWebSocket.java:199) at okhttp3.RealCall$AsyncCall.execute(RealCall.java:174) at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:929) Caused by: java.net.ProtocolException: Expected HTTP 101 response but was '200 OK' at okhttp3.internal.ws.RealWebSocket.checkUpgradeSuccess(RealWebSocket.java:224) at okhttp3.internal.ws.RealWebSocket$1.onResponse(RealWebSocket.java:195) at okhttp3.RealCall$AsyncCall.execute(RealCall.java:174)  at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)  at java.lang.Thread.run(Thread.java:929) 

q88qaz avatar Jan 14 '22 08:01 q88qaz

应该是连接地址不正确,正确的 websocket 连接地址在连接的时候会返回状态码 101,你这个地址它返回了 200

troyzhxu avatar Jan 14 '22 08:01 troyzhxu

他是http协议的websocket

q88qaz avatar Jan 14 '22 09:01 q88qaz

然后还带端口号

q88qaz avatar Jan 14 '22 09:01 q88qaz

形如: http://test.xxxxxxxxxx.com:2120

q88qaz avatar Jan 14 '22 09:01 q88qaz

那这确实不是 WebSocket 协议,可能是 SockJS 协议

troyzhxu avatar Jan 14 '22 09:01 troyzhxu

是安卓端吗??安卓端不支持socketjs

xyStephenZhou avatar Dec 15 '22 01:12 xyStephenZhou