Javascript Node.js express不打印任何内容

Javascript Node.js express不打印任何内容,javascript,node.js,express,websocket,Javascript,Node.js,Express,Websocket,所以我移动了app.listen到顶部,但现在它给我一个错误,端口正在使用中。我相信这是因为我在这个端口上设置了我的websocket,但是我该怎么做呢 var server = require('websocket').server, http = require('http'); var express = require('express'); var app = express(); app.listen(8080); var socket = new server({ htt

所以我移动了app.listen到顶部,但现在它给我一个错误,端口正在使用中。我相信这是因为我在这个端口上设置了我的websocket,但是我该怎么做呢

var server = require('websocket').server, http = require('http');
var express = require('express');
var app = express();
app.listen(8080);

var socket = new server({
    httpServer: http.createServer().listen(8080)
});


socket.on('request', function(request) {
    var connection = request.accept(null, request.origin);

    app.get('/', function(request, response) {
        var id = request.query.steamid;
        console.log("STEAMID:",id);
        response.send("I have received the ID: " + id);
    });

    connection.on('message', function(message) {
        connection.sendUTF(message);
    });

    connection.on('close', function(connection) {
        console.log('connection closed');
    });
}); 

我相信您需要在
连接
上收听,而不是在
请求

socket.on('connection', function(sock) {       
    sock.on('message', function(message) {
        sock.send(message);
    });

    sock.on('close', function() {
        console.log('connection closed');
    });
}); 
把你的
应用放进去,听(3000)请求事件外部。
因此,您的express服务器有机会初始化端口以进行侦听

目前它在
请求事件的回调中
,一旦建立了web套接字的客户机-服务器连接,它就会被调用

就URL而言

ws://localhost:8080/?steamid=123456789
您已将websocket配置为在端口8080上侦听。但您的express配置为侦听端口3000。因此,无法捕获配置在不同端口上的express Server上的请求,该请求是通过另一个不同端口上配置的web socket请求的

url应该是这样的

http://localhost:3000/?steamid=123456789

由于您的express服务器使用的是
http协议,而不是websocket

感谢@VickyGonsalves的响应,因此我对我的主题进行了一些编辑。请查看上面的代码。所以它只解析http中的变量?那么,我如何在javascript websocket中解析它们呢?express和websocket使用相同的端口。请使用不同的端口。但是,如果客户端使用端口8080连接到服务器,并且我将express设置为端口3000,它还会工作吗?取决于客户端协议和端口