首页 > 解决方案 > Socket.io 服务器不响应客户端

问题描述

在服务器上,我将传输更改为 websocket,并使用 socket.io-client.js 作为客户端,并且可以正常工作。

socket.io-client.js

{"GET":{"scheme":"ws","host":"113.14.15.178:3000","filename":"/socket.io/","query":{"EIO":"4","transport":"websocket"},"remote":{"Address":"113.14.15.178:3000"}}}

当版本在我的 Android 应用程序上使用 socket.io-client.java 时,我遇到了问题。当我使用 socket.io-client.java 时服务器不响应请求

socket.io-client.java

{"GET":{"scheme":"ws","host":"113.14.15.178:3000","filename":"/socket.io/","query":{"EIO":"3","transport":"websocket"},"remote":{"Address":"113.14.15.178:3000"}}}

问题是否出在 socket.IO-client 中使用的 Engine.IO 上。有没有解决方案

标签: androidnode.jssocket.iosocket.io-java-client

解决方案


我已经解决了我自己的问题。如果你有同样的问题。您可以尝试以下方法:

  1. 在您的项目中添加 Websocket 客户端模块

    implementation 'blabla:ws:version'

  2. 进行与服务器标头相同的查询

     ws.header({"filename":"/socket.io/"}).query({"EIO":"4","transport":"websocket"}); 

  3. 使用 webscocket-client.js 时,检查来自 socket.io 和 websocket 客户端的传出消息和传入消息。

例子:

  • 输入:40
  • 出:20
  • 输入:30
  • 出:20
  • 输入:30
  • 出:20
  1. 然后做同样的事情来使条件成立。
    ws.open( (40) ? ws.send(20) : ws.reconection(); );
    ws.massage( if(30){ ws.send(20); } );

推荐阅读