Отправка данных с серверных узлов на клиентскую сторону (не на сокет) - PullRequest
0 голосов
/ 07 октября 2018

Я ищу способ отправки данных из моего сокета, например, example.com:8000 на мой веб-сервер, а не в сокет. example.com/index.php. Я искал код, но не нашел ответов.Если вы делаете пример кода, не могли бы вы отобразить var x, который = = 2 от Nodejs для клиента?

Заранее спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

Если вы используете NodeJS в качестве сервера, то я рекомендую использовать этот пакет: npm ws , это сверхлегкий веб-сокет для серверной стороны.

Теперь, к вашему примеру:

на стороне сервера:

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
  });

  ws.send('something');
});

на стороне клиента

const socket = new WebSocket('ws://127.0.0.1:8080/');
    socket.onopen = () => {
        console.log("I'm open!");
        socket.send('Sending from client');
    }
    socket.onmessage = (message) => {
        console.log('Received: ', message);
        console.log('Received Data: ', message.data);
    }
  • Вы увидитеconsole.log на сервере с надписью «получено: отправка от клиента»
  • Вы увидите два файла console.logs на клиенте со словами:

    Received: MessageEvent {isTrusted: true, data: "something", origin: "ws://127.0.0.1:8080", lastEventId: "", source: null, …}

    И

    Received Data: something

Полученные данные "что-то" были отправлены с сервера на ws.send('something');, вы можете изменить это на строку типа JSON, а затем проанализировать message.data на клиенте с помощью JSON.parse(message.data)

ПРИМЕЧАНИЕ: На клиенте WebSocket() - это собственный API, поэтомуВам не нужно ничего импортировать, в отличие от сервера NodeJS, где желателен пакет NPM.

На самом деле вы можете протестировать клиентскую часть через консоль разработчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...