我在Heroku上托管的Node.js应用程序上为我的JS客户端代码加载socket.io库时遇到了麻烦。
现在,我在index.html文件末尾有这一行:
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
但是,当我在我的JS客户端代码中执行socket = io.connect('http://myherokuapp');
时,我得到一个预期的'io is not defined'错误。
知道如何在Heroku上正确加载库吗?
谢谢!
答案 0 :(得分:9)
好的,所以我终于找到了自己的方式。我正在分享以防万一。
我以这种方式在index.html中加载脚本:
<script type="text/javascript" src="http://myapp.herokuapp.com/socket.io/socket.io.js"></script>
这是有道理的,因为客户端库实际上是从节点服务器加载的,不应该手动推送。
在我的客户端JS文件中,我以这种方式实例化套接字:
socket = io.connect('http://myapp.herokuapp.com/');
此外,这超出了这个问题的范围,但你现在不能在Heroku上使用websocket。他们对here有一点说明。
希望这有帮助!