首页 > 解决方案 > 托管时未在控制台中定义 Socket.io

问题描述

我是 socket.io 的新手并在 Raspberry Pi 上托管,所以我来这里寻求帮助!我目前想在我的网页上运行实时聊天,该网页托管在 apache2 上,域名为tuckermedia.org. 当我在本地运行它时,我在运行 nodemon server.js 时没有收到错误,它应该运行它,但这似乎不适用于 Raspberry Pi。

当我将它托管在我的 Raspberry Pi 上时,我经常收到此错误:(Uncaught ReferenceError: io is not defined下面的屏幕截图)

[ https://i.stack.imgur.com/asfu2.jpg][1]

现在,我已将我的脚本 SRC 更改为:<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>这就是它目前的样子。

然而,这仍然给我同样的问题。我确保我有 socket.io、nodemon 和其他我需要的包。我还确保我用 nodemon 启动了服务器,但我仍然得到同样的错误。

Raspberry Pi 上的 Nodemon 截图: https ://i.stack.imgur.com/Ao98P.jpg

如果你能帮助我,谢谢!如果您想进行对话,也可以在 Logans#9830 上给我发消息。谢谢!

HTML 代码:https ://pastebin.com/aGhqFFm8

script.js(客户端)代码:https ://pastebin.com/XkXJPDb2

server.js(服务器端)代码:https ://pastebin.com/YYvK1dwd

这是我的 Raspberry Pi 上的控制台源代码,与它在本地托管相比。

https://i.stack.imgur.com/oHndj.jpg

似乎我的某些文件甚至没有按应有的方式显示。

标签: javascripthtmlsocket.io

解决方案


在您的前端代码中应该有指向socket.io的正确链接。我想您的脚本路径如下:

<script src="/socket.io/socket.io.js"></script>

试试这个:

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>

来源:https ://cdnjs.com/libraries/socket.io


推荐阅读