node.js无法GET /socket.io

时间:2015-12-02 21:18:20

标签: javascript node.js express socket.io

我有以下应用程序使用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');

3 个答案:

答案 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将连接到呈现网页所在的同一主机和端口。路径中的/表示连接到默认命名空间。