Socket.IO - require未定义

Joh*_*son 16 html5 node.js socket.io

我正在尝试使用socket.io,但现在在Chrome中我收到错误:

未捕获的ReferenceError:未定义require

client.php:9 Uncaught ReferenceError:未定义io

我改变了包含socket.io.js文件的方式,因为dosnt存在于其他地方:

<script src="/node_modules/socket.io/lib/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)

如果我试试

<script src="/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)

我得到:无法加载资源:服务器响应状态为404(未找到)

这是在Ubuntu上最新的一切

我正在使用http://socket.io/中的服务器代码在client.php这样的文件夹中工作,并且名为server.js,只能修改端口.

the*_*ejh 31

如果您的脚本不是来自您的网络服务器,则无法使用:

<script src="/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)

您必须明确说明主机和端口:

<script src="http://localhost:<port>/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • @JohanSvensson:你必须在nodejs服务器中包含脚本.不是来自你的阿帕奇.DAMMIT,只是我发布了什么! (10认同)
  • @JohanSvensson:脚本由节点服务器神奇地提供服务. (3认同)

Ric*_*asi 16

你在服务器上沿着PHP 运行node.js吗?

有两个"socket.io"包,一个服务器和一个客户端.您正尝试在浏览器中加载服务器 one(/node_modules/socket.io/lib/socket.io.js).您想要的脚本称为socket.io-client,您可以在https://raw.github.com/LearnBoost/socket.io-client/master/socket.io-client.js找到它.

当您在端口80上运行节点时,socket.io会自动/socket.io/socket.io.js从端口80 为(客户端1)文件提供服务.在您的情况下,Apache已经在端口80,因此您需要手动提供该文件.


小智 5

您的库包含(/socket.io/socket.io.js)在您的客户端浏览器编码可能没问题.但是您可能指向错误的副本socket.io.js 如果您socket.io使用(npm install socket.io)安装,那么您可能希望查看以下目录中的客户端版本socket.io.js:

C:\Program Files (x86)\nodejs\node_modules\socket.io\node_modules\socket.io-client\dist\socket.io.js

如果它在那里,那么您可能希望将该模块复制到Web发布目录,或者作为替代方案,您可以更改虚拟目录指向的物理路径.