Можно ли применить функцию asyn c к параметру handleProtocols для Websocket.Server () - PullRequest
0 голосов
/ 18 марта 2020

Я проектирую сервер, который передает запросы websocket в node.js, который использует пакет ws. Когда соединение установлено, я бы хотел, чтобы мой сервер отправил запрос другому микросервису, чтобы определить, можно ли обслужить конкретный суб-протокол, запрошенный клиентом. Самый простой способ, который я решил сделать, заключается в следующем:

const Websocket = require("js");
const server = new Websocket.Server({
   port: 3002,
   handleProtocols: async (protocols) => {
      return await lookup_service(protocols[0]);
   },
   ....
})

Это допустимо, или функции обратного вызова, используемые с ws, должны быть синхронными?

1 Ответ

0 голосов
/ 21 марта 2020

Ну, я попробовал это и не получил результаты, которые я ожидал. Я пришел к выводу, что, поскольку async / await неявно заключает в оболочку обещание, его нельзя использовать в качестве обратного вызова, если только код, вызывающий обратный вызов, явно не поддерживает обещание.

...