如何配置socket io和socket io client

时间:2017-02-13 17:25:22

标签: node.js unit-testing sockets command-line connection

美好的一天

我需要通过单位服务器

将大量电脑​​连接到主服务器

hierarchy

我有一些东西,但我没有完整的

主服务器

socketIo = require("socket.io"),
ioServer = socketIo(server),
ioServer.sockets.on("connection",function(socket){
     // Display a connected message
     console.log("Server-Client Connected!");
     // When we receive a message...
     socket.on("message",function(data){
         // We got a message... I dunno what we should do with this...
         console.log(data);
         console.log(data.from + " is connected with ip " + data.ip);
         socket.emit('message', { 'from': '10.19.17.101', 'answer':'I already added you '+data.from });
     });
 });

服务器单元

 socketIo = require("socket.io"),
 ioServer = socketIo(server),
 ioClient = require("socket.io-client")('http://10.19.17.101:7700')
 ioClient.on('connect', function(){
       ioClient.on('message',function(data){
           console.log(data.from + " answered: " + data.answer);
           ioServer.to('pxe4').emit('message',data);
       });
       ioClient.emit('message',{ 'from': 'pxe4', 'ip':'10.19.16.84' });
 });

 ioServer.sockets.on("connection",function(socket){
     // Display a connected message
     console.log("User-Client Connected!");
     // When we receive a message...
     socket.on("message",function(data){
        // We got a message... I dunno what we should do with this...
        console.log(data);
        console.log(data.from + " is connected with ip " + data.ip);
        socket.emit('message', { 'from': '10.19.16.84', 'answer':'I already added you '+data.from });
        ioClient.emit("message",data);
    });
    socket.on("disconnect",function(data){
        // We need to notify Server 2 that the client has disconnected
        ioClient.emit("message","UD,"+socket.id);
        // Other logic you may or may not want
        // Your other disconnect code here
    });

 });

单位

 ioClient = require("socket.io-client")('http://10.19.16.84:7770'),
 ioClient.on('connect', function(){
      ioClient.on('message',function(data){
         // We received a message from Server 2
         // We are going to forward/broadcast that message to the "Lobby" room
         console.log(data.from + " answered: " + data.answer);
      });
      ioClient.emit('message',forsend);
 });

我想知道此时我是否可以从主服务器向特定单位发送一些信息?

如果有人可以帮助我,我会很感激。

1 个答案:

答案 0 :(得分:1)

从主服务器或服务器单元上的每个客户端连接时,您将收到包含socketid的套接字对象。您必须将这些套接字ID保存在某些数据存储中,以便使用服务器信息进行快速访问。当您必须向特定套接字发送数据时,您必须从数据存储中查询该特定套接字并发出数据。断开连接时,您必须从数据存储中拉出该特定套接字