Я вынужден использовать вышеуказанный поток данных.
Сервер node.js получает вызов для запуска команды подключенному клиентуна сервер node.js через websocket.
Нормальный поток заканчивается на клиенте после того, как браузер websocket браузера вызывает инструкцию для библиотеки javascript.
Es.
REST CALL -> KillAllHumans
NODEJS -> pass KillAllHumans to websocket;
BROWSER -> onmessage -> javascript_library.killAllHumans;
Требуется специальный метод REST ENDPOINTвернуть значение, сгенерированное библиотекой javascript, чтобы node.js оставался в ожидании до тех пор, пока клиент websocket не ответит.
Вопрос: возможно ли это?Это простой код веб-сокета в браузере.
echo_service = new WebSocket(websocketUrl,"echo-protocol");
echo_service.onmessage = function(event)
{
var result = javascript_library.manageAction(event.data);
console.log("killAllHumansResults: "+result);
return result;
}
Кажется, что оператор return не работает.
РЕДАКТИРОВАНИЕ:
это тело REST API, получившего REST CALL.wsServer - это класс объектов websocket.Посмотрите на результат вар.это ответ, возвращенный клиенту, который вызвал REST CALL (используя функцию обратного вызова).
var result = this._wsServer.sendMessage(<ip_client>,<parameters>);
console.log("rest return: "+result);
callback(error, result);
return;
Для объекта Websocket im, использующего этот проект узла: https://www.npmjs.com/package/websocket
отправить сообщениеэто простой вызов connection.send(message);
Клиент получает сообщение правильно.«KillAllHumansResults» правильно печатается.К сожалению, "rest return:" не определено.
Очевидно, что печать запускается до завершения оставшегося потока.