【问题标题】:Socket.io io is not defined [closed]Socket.io io 未定义 [关闭]
【发布时间】:2020-04-14 09:06:56
【问题描述】:

我有以下代码 index.html 文件。我已经在 NPM 上安装了 socket.io 包。

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io();
</script>

我收到以下错误:

更新:使用 CDN 链接,现在我在客户端控制台上收到以下错误。

【问题讨论】:

  • 找不到文件 socket.io.js。要么从某个地方下载它并确保它在正确的目录中,要么从 CDN 获取它。

标签: node.js socket.io


【解决方案1】:

这可能有很多原因。我发现最常见的是您最初声明 Socket.io 的方式。

正确的设置如下所示:

const express = require('express');
const app = require('express')();
const http = require('http').createServer(app);
const io = require('socket.io')(http);

我注意到的另一个答案是使用文件的 CDN 版本是一个不正确的解决方案。如果服务器端设置正确,Socket.io 应该为此生成它自己的文件。

如果您对此有任何问题,请告诉我。

【讨论】:

  • 谢谢!它是 http.listen 而不是 app.listen。因为我将 http 传递给 socket 模块。
【解决方案2】:

尝试使用CDN version:

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

编辑:如果您有这些错误,则意味着客户端 socket.io 已正确插入,您现在在其服务器端部分遇到了某种问题。例如,如果您的 socket.io 服务器在端口 8000 上运行,请尝试像这样运行连接:

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script>
  const socket = io('http://localhost:8000');
</script>

【讨论】:

  • 谢谢!用 update 更新了原始问题。
猜你喜欢
  • 1970-01-01
  • 2011-08-03
  • 2022-12-11
  • 1970-01-01
  • 2014-08-06
  • 2011-11-28
  • 2019-10-21
  • 2013-12-26
  • 2016-01-29
相关资源
最近更新 更多