gpt4 book ai didi

javascript - Nodejs 两个模块之间进行通信

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:41 26 4
gpt4 key购买 nike

您好,当设置通过某些API更改时,我尝试使用SOCKET向用户发出命令。但我不知道如何获取套接字或告诉套接字向用户发送消息..请帮忙

这是我的代码

//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....

最佳答案

您必须使套接字在服务器上“监听”。例如,我将express与node.js一起使用,这就是我运行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);
});

关于javascript - Nodejs 两个模块之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41035676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com