@MelancholicTheDie
PHP Developer

NodeJs Как получить сообщение из библиотеки «net» не через событие?

Добрый вечер.

Использую для общения клиента с сервером nodejs библиотеку "net".
Она дает возможность в любой нужный момент где угодно вызвать функцию send(пример: socket.write(data)).
Так вот, теперь нужна обратная сторона данной задачи, мне нужно получить данные не через событие (socket.on("data")), а на прямую:
var buffer = socket.read() (это пример желаемого результата).

У меня в программе два вида сокетов: обычные TCP соединения и WebSocket(socket.io). Так вот, на socket.io приходит запрос с данными, которые я должен отправить клиенту на TCP, но так же сразу же дождаться ответа(ответ будет быстрый, ибо мне нужно клиент буквально пингануть, чтоб проверить его занятость). Так как сокеты разные, то разные и слушатели, поэтому очень неудобно получать данные из чужого слушателя, из-за этого и хочу использовать socket.read()

Как это можно реализовать? Можно пример кода, можно статейку, можно просто словами описать.
  • Вопрос задан
  • 368 просмотров
Решения вопроса 1
@yeti357
Создайте буфер, в который сваливайте данные из socket.on('data'). А потом по необходимости читайте из него и очищайте.

Так вот, на socket.io приходит запрос с данными, которые я должен отправить клиенту на TCP,
тут лучше pipe организовать. Не знаю как socket.io, но стандартный сокет из net является стримом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы