将 socket.io 连接到不同的地址
Connect socket.io to different address
我正在开发一个 django 系统,该系统具有使用 socket.io 构建的内置聊天功能。
今天我试图在 webfaction 上获取所有内容,所以我将 django 部分注册到 http://example.com and the node/socket part to http://example.com/chat。
我已经设法 socket.io.js
向浏览器提供服务,但连接无法正常工作。客户端正在尝试连接到 http://example.com instead of 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 地址,因为它可能会在未来发生变化。
我做错了什么?
谢谢
您必须在客户端上设置 path
选项:
io('http://example.com', {path: '/chat/socket.io'});
这是因为 socket.io 客户端默认尝试连接到 /socket.io
,但在您的情况下,它托管在 /chat
下,因此您必须更改设置 socket.io与选项连接。
我正在开发一个 django 系统,该系统具有使用 socket.io 构建的内置聊天功能。
今天我试图在 webfaction 上获取所有内容,所以我将 django 部分注册到 http://example.com and the node/socket part to http://example.com/chat。
我已经设法 socket.io.js
向浏览器提供服务,但连接无法正常工作。客户端正在尝试连接到 http://example.com instead of 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 地址,因为它可能会在未来发生变化。
我做错了什么?
谢谢
您必须在客户端上设置 path
选项:
io('http://example.com', {path: '/chat/socket.io'});
这是因为 socket.io 客户端默认尝试连接到 /socket.io
,但在您的情况下,它托管在 /chat
下,因此您必须更改设置 socket.io与选项连接。