ugrás a tartalomhoz

Websocket továbbítás IP alapján

vmarci21 · 2015. Szep. 3. (Cs), 18.18
Sziasztok,
azt szeretném megoldani Node.js-el, hogy a Websocket-el küldött üzenetek csak ugyanarra az IPcímről jövő kapcsolat(ok)ra legyenek továbbküldve amelyről jöttek.
  1. var WebSocketServer = require("ws").Server  
  2. var http = require("http")  
  3. var express = require("express")  
  4. var app = express()  
  5. var port = process.env.PORT || 5000  
  6. app.use(express.static(__dirname + "/"))  
  7. var server = http.createServer(app)  
  8. server.listen(port)  
  9. var ennyi = 0;  
  10. var wss = new WebSocketServer({server: server})  
  11. wss.broadcast = function(data) {  
  12.  for (var i in this.clients){  
  13. if(IP-k ugyanazok-e){ //IP ellenőrzés  
  14.  this.clients.send(data);  
  15. }  
  16. }  
  17. }  
  18. wss.on("connection"function(ws) {  
  19. ennyi++;  
  20. var ip = ws.upgradeReq.connection.remoteAddress; //IP lekérés  
  21.  ws.on('message'function(message) {  
  22.  wss.broadcast(message)  
  23.  })  
  24.  ws.on("close"function() {  
  25. ennyi--;  
  26.  })  
  27. })  
 
1

Megnézted?

Poetro · 2015. Szep. 4. (P), 10.16
Megnézted, hogy a kliensnek (this.clients[i]) milyen tulajdonságai vannak? Közöttük lennie kell egy Socket-nek, aminek van remoteAddress tulajdonsága.
2

Majdnem

vmarci21 · 2015. Szep. 4. (P), 18.41
Köszi, ez tényleg megy. Most már csak annyi a probléma, hogy nem a valós IP-t adják vissza, mindig mást.. :( (upgradeReq.connection.remoteAddress)

Így ez nekem sajnos nem jó. Viszont azt hiszem így már meg tudom csinálni amit szeretnék, mert igazából nem az Ip, hanem egy "ellenőrzési" rendszer a cél, ne lehessen össze-vissza "üzengetni" a kliensek között ;)