【问题标题】:Not able to connect Node.js/Socket.io Server from a Client using Websocket from a Unix System in a LAN无法使用 LAN 中 Unix 系统的 Websocket 从客户端连接 Node.js/Socket.io 服务器
【发布时间】:2015-12-16 19:37:53
【问题描述】:

我在 Unix 环境中使用 websockets 用 C++ 编写了一个客户端应用程序,试图连接在 LAN 连接中运行的 Node.js/Socket.IO 服务器。我发现服务器应用程序根本没有响应。我从客户端尝试了其他几个选项,最终没有得到服务器的响应。基本上,我正在尝试将 JSON 对象发送到运行 SocketIO 服务器的系统,但即使服务器侦听端口,客户端也没有连接。 帮助,非常感谢。谢谢。

【问题讨论】:

  • 你应该在两边都添加代码。还要确保您没有防火墙或任何其他阻止该端口的东西
  • 关于无效代码的问题必须包含相关代码。否则,您所要求的只是猜测,这与这里无关。
  • 从客户端使用 WebSocket++,当我尝试将 ws://localhost:3000 从 Unix 控制台连接到 Node.js/Socket.io 服务器监听 3000 端口时,服务器端没有任何反应,它一直在听。服务器代码 sn -p =====> var app = require("express"); var server = require("http").Server(app); var io = require("socket.io")(server); io.on("连接", handleClient); app.listen(3000); ====>连接函数没有被调用。
  • 也许可以尝试为服务器使用端口 80 或 8080,这样大多数防火墙都不会出现问题...

标签: c++ node.js websocket socket.io client-server


【解决方案1】:

确保已检查以下内容-

  1. 服务器正在运行且端口已打开(防火墙)- 客户端无法连接服务器
  2. 网址正确 - 客户端无法连接或网址不存在
  3. 侦听器代码或接收任务正在运行 - 客户端已连接,但当服务器向客户端发送数据时,客户端没有接收到数据
  4. JSON 格式正确且 json 数据不包含无效字符 - 客户端发送数据服务器但服务器未收到

关注 - 如果存在于 msg 中,则删除日期以用于测试目的,使用 " 准备 JSON 数据,如果不需要,请勿将 / 放在 url 的末尾。示例- 1.将url写成ws://abc.com:8080/wsserver 2. JSON 数据为 {"name":"myname","yourname":"indo","msg":"birthday"}

【讨论】:

  • 我在客户端使用了github.com/zaphoyd/websocketpp 这个,我使用connect ws://localhost:3000 连接监听端口3000 的Node.JS/Socket.io 服务器。片段来自服务器端 -----> var app = require("express"); var server = require("http").Server(app); var io = require("socket.io")(server); io.on("连接", handleClient); app.listen(3000);我可以看到来自客户端的 JSON 格式输出,但我无法在这两者之间创建通道。
猜你喜欢
  • 2018-04-11
  • 2021-04-02
  • 2020-12-11
  • 1970-01-01
  • 2018-05-12
  • 1970-01-01
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
相关资源
最近更新 更多