是否可以将异步函数作为Websocket(ws)侦听器传递? (node.js和ws库)
我的websockets必须做的大部分操作都是asycnrhonous,所以我将一个异步函数作为回调函数传递给websocket并在其中调用await,这样做是否可以?如果不是我有什么选择? 编辑:这是我的消息监听器:
ws.on('message', async function (message) {
if (message instanceof Buffer) {
if (currentMode == prot.dataMode) {
await appendData(sessionData,message);
}
else {
console.log("error : unexpected message received");
}
}
// if the message is for defining the mode of communication
//This message is a configuration message
else {
message = JSON.parse(message);
if (message[prot.modeField] == prot.confMode) {
console.log("conf mode");
currentMode = prot.confMode;
await configure(sessionData,message);
}
//The following messages will be data
else if (message[prot.modeField] == prot.dataMode) {
console.log("data mode");
currentMode = prot.dataMode;
}
else{
console.log("unknown message structure : ");
console.log(message);
}
}
});
回答如下: