我是Node.js和Socket.io的真正新手 - 所以如果这是一个愚蠢的问题,请耐心等待.
我在Heroku上设置了一个非常基本的假人来测试Socket.io.您所能做的就是单击一个按钮,所有连接的浏览器都会相应地看到一条消息.当服务器在本地运行时,这非常有效.现在它在Heroku上我看到Safari和Chrome上的连接问题.初始连接延迟大约10秒,第一次调用时出现错误503 io.connect('http://myapp.heroku.com/').
在Firefox和Internet Explorer中,几乎可以立即实现连接.
你可以在这里看到应用程序: http://sprain.ch/socketio/
关于什么可能导致这个问题以及如何解决它的任何想法?
您可以使用"connect timeout"参数(默认为10秒)减少用于第一个websocket连接的超时.
您可以尝试使用以下命令将超时减少到1秒:
io.connect('http://myapp.heroku.com/',{'connect timeout': 1000});
Run Code Online (Sandbox Code Playgroud)
一些东西:
我建议您使用这些设置:http://devcenter.heroku.com/articles/using-socket-io-with-node-js-on-heroku
尝试简单地使用“io.connect()”,而不是尝试手动指定 URL。SocketIO 有一些非常可靠的内置发现机制,用于与本地主机通信,无论该主机是什么。
Heroku + Socket.IO 本身并没有什么慢的地方(从经验来看),所以它让我相信你的代码中还发生了其他事情。如果您能多分享一点,诊断可能会更容易。
另外,FWIW 您链接的页面只是有一些文字,上面写着“klick me!” 并且没有按钮。
| 归档时间: |
|
| 查看次数: |
7162 次 |
| 最近记录: |