将socket.io连接到不同的地址

时间:2015-01-17 19:48:51

标签: django node.js socket.io

我正在开发一个django系统,它有一个用socket.io构建的聊天内置。

今天我试图在webfaction上获取所有内容,因此我将django部分注册到http://example.com,将节点/套接字部分注册到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/')来建立连接

在服务器上我写了这个:

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地址,因为将来可能会更改。

我在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

您必须在客户端上设置path选项:

io('http://example.com', {path: '/chat/socket.io'});

这是因为socket.io客户端默认尝试连接到/socket.io,但在您的情况下,它在/chat下托管,因此您必须更改socket.io连接的位置设置选项。