将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连接选项的设置。