2014-02-22 12 views
9

node.js WebSocket Beispiel-Code-Snippet

Ich habe eine einfache node.js Anwendung mit Express. Jedes Mal, wenn ein Client eine Verbindung zum Knotenserver herstellt, sehe ich die Zeichenfolge 'neuer Client verbunden', aber ich würde gerne wissen, welche IP der neue Client hatte.javascript: print websocket Client-IP-

var WebSocketServer = require('ws').Server; 
var connIds = []; 

var server = require('http').createServer(app).listen(80); 

// set up the websocket server 
var wss = new WebSocketServer({ server: server }); 
wss.clientConnections = {}; 

// websocket server eventlisteners and callbacks 
wss.on('connection', function (connection) { 
    console.log('wss.on.connection - new client connected'); 
    ... 

Siehe den Code an: https://github.com/qknight/relais.js/blob/master/relais.js/server.js#L159

Frage

Das Objekt connection Eigenschaften hat, aber ich verstehe nicht, wie sie fragen oder was sie sind. Alles, was ich will, ist das Drucken der Client-IP und vielleicht, wenn vorhanden, auch andere ähnliche Eigenschaften.

Wie mache ich das?

Antwort

17

Remote-IP ist eine Eigenschaft der Pre-Upgrade-Verbindung:

var wss = new WebSocketServer({port: 9876});  

wss.on('connection', function(ws) { 
    console.log(ws.upgradeReq.connection.remoteAddress); 
}); 

Ich erinnere mich nicht, wie ich es gefunden, aber ich weiß, dass es mir dauerte eine Weile; Ich wünschte, die Dokumente wären so gut wie der Code ...

+0

vielen Dank! das klappte aus der Box !! – qknight

+0

Lebensretter <3333 – Sam

+0

es gibt mir nur eine IP-Adresse des Servers, nicht der Client. –

Verwandte Themen