【发布时间】:2012-06-12 22:16:51
【问题描述】:
所以我使用 node.js、socket.io 和 kineticJS 制作了一个多人太空射击游戏。 我的 Node.js 服务器实际上并不为客户端页面提供服务。我的客户端文件目前托管在我计算机上的本地 Apache 服务器中。
节点服务器现在在 Heroku 上启动并运行,我似乎无法在客户端加载 socket.io。我不断收到“io is not defined”错误。 这就是我导入脚本的方式:
<script src="http://xxx-xxx-xxxx.herokuapp.com:5000/socket.io/socket.io.js"></script>
我已按照此处显示的说明进行操作:https://devcenter.heroku.com/articles/nodejs 我的 package.json 文件如下所示:
{
"name": "Grid-Frontier",
"version": "0.0.1",
"dependencies": {
"socket.io": "0.9.x"
},
"engines": {
"node": "0.6.x"
}
}
在本地主机上一切都很好,我可以执行以下操作:
// Importing on client side
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
// Server-side
server.listen(8080);
socket = io.listen(server);
【问题讨论】:
-
不相关,只是提醒一下:Heroku 不支持 websockets,你应该设置 xhr-polling
-
你也关注这个了吗? devcenter.heroku.com/articles/…
-
socket.io.js真的加载了吗?尝试手动浏览到文件位置或使用开发人员工具中的网络选项卡。听起来浏览器在加载客户端库时遇到问题。 -
@Mustafa 是的,我确实将 socket.io 更改为使用 XHR-polling。
-
你可能想试试nodejitsu.com,它是一个更好的nodejs应用平台
标签: node.js heroku socket.io kineticjs