我使用.msi软件包在我的Windows服务器上安装了Node,该软件包可以在nodejs.org网站上下载,并且运行正常。然后我跑了npm install socket.io
,那也很顺利。它将socket.io安装到C:\node_modules\socket.io
。我将socket.io网站上的示例服务器代码添加到名为app.js
的新文件中。我做的唯一更改是端口号为1337.然后我将app.js启动Node,如此:node app.js
进入命令行,并收到info: socket.io started
消息。
在客户端 - 我正在开发我的网络应用程序的OSX笔记本电脑 - 我不确定如何正确获取socket.io.js
文件及其所有依赖项,以便我可以将其包含在我的HTML页面中<script>
标记。来自socket.io Wiki上的How do I serve the client
FAQ页面:
客户端由Node.JS服务器自动提供。在您的HTML标记中,包含:
<script src="http://<uri:port>/socket.io/socket.io.js"></script>
所以,我把它添加到我的index.html页面:
<script src="http://my.windows.server.domain.com:1337/socket.io/socket.io.js"></script>
当我将index.html文件上传到我的网络服务器并将浏览器指向它时,我检查控制台并找到:
XMLHttpRequest cannot load http://localhost/socket.io/1/?t=1330983853883. Origin http://my.web.server.domain.com is not allowed by Access-Control-Allow-Origin.`
有没有人用socket.io遇到过这条消息?关于如何让客户端包含它所需的代码的任何提示,以便我可以开始使用socket.io的真棒?
答案 0 :(得分:1)
这是因为通常XHR不能跨域(并且在提升到socket.io协议之前,初始“握手”通过XHR)。你用默认的socket.io设置做了什么吗?尝试添加:
io.set("origins","*");
在您的socket.io服务器设置中。如果这不起作用,那么也许您使用旧版本的socket.io?我认为0.9是最新的。