在两个模块nodejs之间进行通信



你好,我正在尝试使用 socket 在设置通过某些 API ..,但我不知道如何获取套接字或告诉插座向用户发出消息。请帮助

这是我的代码

//Socket INIT
  
class Socket{
 constructor(){
    
 //Init variables
  }
  start(){
 //Start socket
   this.io.use((socket, next) => this.auth.authDevice(socket, next));
  this.io.on('connection',(socket) => this.conn.handleConn(socket));
  }
  
}
//Socket Connection
let socketStack = [];
class Connection{
   handleConn(socket){
     //  store client 
     socketStack[socket.userid] = socket
   }
    pushCmd(userid, command){
      //cheeck if userid exists in >>socketStack<<  and emit 
    }
 }
//Command Emit 
class Command {
  constructor(id) {
    this.userid = id.userid
    //socket - Connection class
    this.socketConn = new SocketHandler()
  }
  static push(userid, command) {
    
    //i want to sent it to current socket context. this has empty socketStack..
  this.socketConn.pushCmd(userid, command);
  }
}
let socket = new Socket();
socket.start() //connection started, all clients connect to //this  socket .. I WANT API to use this socket to emit something that //API sends....

您必须使套接字在服务器上'听'。例如,我正在使用node.js使用Express,这是我运行socket.io的方式:

var app = express();
var server = require('http').createServer(app);
var io = socketio.listen(server);
io.on('connect', function (socket) {
    socket.on('exampleCall', function () {
        console.log("socket invoked!");
        socket.emit("exampleEmit");
    });
});
server.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0", function () {
var addr = server.address();
console.log("Server listening at", addr.address + ":" + addr.port);
});

最新更新