将socket.io连接到不同的地址
我正在开发一个Django系统,它有一个使用socket.io构build的聊天工具。
今天,我试图让webfaction的一切,所以我注册到http://example.com的django部分和http://example.com/chat的节点/套接字部分。
我已经设法为浏览器提供socket.io.js
,但连接不起作用。 客户端正试图连接到http://example.com而不是http://example.com/chat,所以我得到这个错误:
Failed to load resource: the server responded with a status of 404 (Not Found) http://example.com/socket.io/?EIO=3&transport=polling&t=1421523295233-0
在客户端,我写了这个var socket = io.connect('http://example.com/chat/')
来build立连接
在服务器上我写了这个:
var express = require('express'); var app = express() var http = require('http'); var server = http.createServer(app).listen(20964, "127.0.0.1"); var io = require('socket.io')(server);
使用服务器IP地址是不可能的,因为它将来可能会改变。
我在这里做错了什么?
谢谢
您必须在客户端上设置path
选项:
io('http://example.com', {path: '/chat/socket.io'});
这是因为socket.io客户端默认尝试连接到/socket.io
,但在您的情况下,它被托pipe在/chat
,因此您必须更改socket.io连接选项的设置。
- 是否有可能使用Django和Node.Js?
- 无法在heroku上启动gunicorn(Django Node应用程序)错误:正在使用的连接:('0.0.0.0',46831)
- 从安全的angular度来看,Python与NodeJS的Web应用程序
- 是通过node.js高效地发送HTTP POST到Django Web API吗?
- 在Redis上共享一个Django和Express.js应用程序的会话存储
- Django和Node – 它是如何工作的?
- Heroku部署,使用Djangopipe道将Yuglify没有这样的文件
- Django:使用Redis PubSub,Node.js和Socket.io的JSON通知
- 什么时候线程框架比事件驱动的框架更好? (也就是说,什么时候rails比node.js好?)