【问题标题】:client-server websocket客户端-服务器 websocket
【发布时间】:2018-11-05 14:54:34
【问题描述】:
我尝试使用 socket.io 制作客户端-服务器应用程序。
Socket.io 服务器似乎可以工作,但客户端无法连接到它。我得到的错误是关于“/socket.io/socket.io.js”的,就像它无法加载一样。
这是我的问题
- 我们在官方演示中看到的服务器和客户端是否必须在同一个文件夹中?
- 我们可以在没有 express 的情况下制作 nodejs socket.io 服务器吗?
【问题讨论】:
标签:
node.js
websocket
socket.io
client-server
【解决方案1】:
根据您的项目的设置方式,您需要创建 2 个服务器文件,1 个用于应用程序,一个用于 websockets,并且每次用户打开应用程序时它都应该打开(并被告知尝试打开的位置连接)到 websockets 服务器的连接。在我的 websockets 应用程序上,我的应用程序在 localhost:3000 上运行,websockets 服务器在 localhost:3001 上(并告诉应用程序在 3001 上查找服务器),所以实际上你不需要将服务器文件放在同一个文件夹,它们可以在您计算机的两个相对端,只要应用程序指向服务器,就可以了,一旦打开连接,websocket 服务器就会看到客户端,它应该可以工作!让我知道这是否有意义。
【解决方案2】:
不,您可以从其他来源下载 socket.io 前端库,例如 cdn。确保您安装了正确的版本。
是的,你可以不用快递。 Express 只是创建 socket.io 服务器的另一种选择。
例如,目前在我用另一个后端节点框架编写的项目中,我正在使用下面的代码来建立 socket.io 服务器。
const io = require("socket.io")(2337);
io.on("connection", socket =>
// some code
)
【解决方案3】:
我修复了服务器和客户端之间的 websocket 通信问题。
在检查了我的 html 客户端文件后,我在控制台上看到了这条错误消息“ReferenceError: io is not defined”。
我用谷歌搜索了那个错误,我找到了this。