我正在开发一个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地址,因为将来可能会更改。
我在这里做错了什么?
由于
答案 0 :(得分:2)
您必须在客户端上设置path
选项:
io('http://example.com', {path: '/chat/socket.io'});
这是因为socket.io客户端默认尝试连接到/socket.io
,但在您的情况下,它在/chat
下托管,因此您必须更改socket.io连接的位置设置选项。