我有以下应用程序使用express / socket.io(应用程序正在监听并且没有任何错误)。 当我http请求它时,我收到以下错误:
GET http://xxxxxxx.com:3035/socket.io/1/?t=1449090610579 400 (Bad Request)
在http://xxxxxxx.com:3035/socket.io的socket.io响应中,我得到了:
Cannot GET /socket.io
app.js:
var express = require('express'),
http = require('http'),
sio= require('socket.io'),
fs=require('fs'),
app = express();
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'xxxxxxx',
password: 'xxxxxxx',
database: 'xxxxxxxxx'
}
);
connection.connect();
// Start the server
var server=app.listen(3035, function () {
console.log("Express server listening on port %d",3035);
});
app.io=io=sio.listen(server);
.
.
.
在客户端:
var socket = io.connect('http://xxxxxx.com:3035');
答案 0 :(得分:1)
io.connect()
会使用http://example.com:3035
等网址。
您传递的xxxxxx.com:3035
不是正确的网址格式。
另请注意,如果您只是尝试连接到网页来自的同一服务器和端口,则可以使用:
io()
或
io.connect()
socket.io库将连接回与网页相同的主机和端口。
答案 1 :(得分:0)
你的sio是一个功能。您需要将服务器作为参数调用它。
添加
server=require('http').Server(app)
sio=require('socket.io')(server)
答案 2 :(得分:0)
您应该通过
初始化客户端的默认连接io.connect( "/" );
默认情况下,根据文档,socket.io将连接到呈现网页所在的同一主机和端口。路径中的/
表示连接到默认命名空间。