首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Socket.IO -未定义require

Socket.IO -未定义require
EN

Stack Overflow用户
提问于 2011-11-20 22:10:55
回答 8查看 29.7K关注 0票数 17

我试着让socket.io正常工作,但现在在Chrome中我得到了错误:

未捕获ReferenceError:未定义

client.php:9Uncaught ReferenceError: io is not defined

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

代码语言:javascript
复制
<script src="/node_modules/socket.io/lib/socket.io.js"></script>

如果我尝试

代码语言:javascript
复制
<script src="/socket.io/socket.io.js"></script>

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

这是Ubuntu上的最新版本

我使用http://socket.io/中的服务器代码在与client.php相同的文件夹中工作,该文件夹名为server.js,只是修改了端口。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-11-20 22:30:35

如果你的脚本不是来自你的not服务器,这将不起作用:

代码语言:javascript
复制
<script src="/socket.io/socket.io.js"></script>

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

代码语言:javascript
复制
<script src="http://localhost:<port>/socket.io/socket.io.js"></script>
票数 32
EN

Stack Overflow用户

发布于 2011-11-21 10:07:14

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

有两个"socket.io“包,一个服务器和一个客户端。您正在尝试在浏览器中加载服务器一(/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会自动从端口80为(客户机)文件提供服务。在您的示例中,Apache已经位于端口80,因此您需要手动提供来自该端口的文件。

票数 16
EN

Stack Overflow用户

发布于 2013-01-04 07:21:39

您的库在客户端浏览器代码中包含(/socket.io/socket.io.js)可能是可以的。但是,您可能指向了错误的socket.io.js副本如果您使用(npm install socket.io)安装了socket.io,那么您可能需要在以下目录中查找socket.io.js的客户端版本

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

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8202053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档