2016-11-16 2 views
0

Ich mache eine Website und es muss Echtzeit-Kommunikation mit dem Server haben. Mit Echtzeit meine ich, wenn ein Benutzer über ein Thema abstimmt, müssen alle verbundenen Kunden den neuen Durchschnitt der Stimmen sehen.Let-Buchse und HTTP-Server auf den gleichen Port hören

Ich habe etwas versucht, aber ich habe diese Frage: Wie kann ich einen Socket-Server und einen HTTP-Server erstellen, die den gleichen Port mit Node.JS hören? Es I-Code unten laufen, habe ich diese Ausnahme bekam:

Error: listen EADDRINUSE

Hier ist mein Server-Code:

let port = 8080; 

const httpServer = require('http'), 
     app = require('express')(), 
     socketServer = http.Server(app), 
     io = require('socket.io')(httpServer); 

httpServer.createServer(function (req, res) { 
    console.log('http server created on 8080'); 
}).listen(port); 

socketServer.listen(port, function(){ 
    console.log('listening on 8080'); 
}); 

Vielen Dank im Voraus

+1

Sie können nicht. Es macht keinen Sinn. TCP verhindert, dass Sie sich auf diese Weise in den Fuß schießen. – EJP

Antwort

2

Es sieht aus wie Sie etwas Ähnliches wie diese wollen:

const port = 8080; 

let app = require('express')(); 
let server = app.listen(port); 
let io  = require('socket.io')(server); 

Dies legt einen Express-App und einen socket.io Server auf den gleichen HTTP-Server (was von app.listen() zurückgegeben wird). So führen Sie die App und den Server socket.io auf demselben Port aus.

Verwandte Themen