Передача приём и отображение UDP данных
Возможна ли организация такой схемы. Есть сервер и клиент по wifi. Сервер выдает html страницу с JS а затем передает UDP пакеты с информацией (например скорость, температура).
Клиент принимает страницу, а затем слушает UDP пакеты и автоматически перерисовывает страницу (в виде цифры или в идеале стрелки, шкалы). |
WebSocket основан на TCP. Обратите внимание, что в случае WebSocket взаимодействие между клиентом и сервером начинается с запроса HTTP. Таким образом, вы не можете создать обычное TCP-соединение в Javascript.
WebRTC основан на UDP, он может охватывать ваш вариант использования (html5rocks.com/en/tutorials/webrtc/basics/) Хотя WebSocket вам больше бы подошёл, думаю. |
я уже сделал два похожих проекта (зонды где-то по РФ летают, засылают пакеты...) C#
client - WPF - MVVM server - WebSocket server, который крутится в сервисе... пакеты приходят на COM порт, клеим+парсим, засылаем по WS второй на nodejs server: express + sequelize + socket.io client: reactjs + socket.io + electron сейчас будем делать третий проект на втором стэке + ReactNative второму стэку я больше рад, ) |
То есть c TCP можно организовать запросы от клиента из JS к серверу получение ответа и отображение. А что если пакет потеряется начнутся тормоза?
|
Сервер на чем?
вот пример для nodejs 1 создадим папку 2 выполним yarn add ws 3 создадим файл wss.js c содержимым 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'); }); 4 запустим WebSocket сервер: node wss.js 5 сделаем клиент на javascript <script> let ws = new WebSocket(`ws://localhost:8080`); ws.onerror = () => console.log('WebSocket error'); ws.onopen = () => console.log('WebSocket connection established'); ws.onclose = () => console.log('WebSocket connection closed'); ws.onmessage = (message) => console.log('onmessage: ', message, message.data) ws.onopen = () => { ws.send('message', 'message via emit') } </script> 6 все Или например для пыха, можно взять что-то типа Ratchet (http://socketo.me/) <?php namespace App; use Ratchet\Server\IoServer; use Ratchet\Http\HttpServer; use Ratchet\WebSocket\WsServer; require_once './SocketController.php'; require __DIR__ . '/vendor/autoload.php'; // configurations $server = IoServer::factory( new HttpServer( new WsServer( new SocketController() ) ), 8080 // the port of the web socket ); $server->run(); Написать свой SocketController который будет обрабатывать теже message, error и т.д. |
Цитата:
https://github.com/igrr/esp32-http-server толку от этой информации, вероятно, не много |
У ТСа копеечный микроконтроллер с вайфай и вшитым в прошивку веб сервером. ТС ищет проблемы там где их нет HTTP хватит для его задачи с головой. Я даже придумать не могу случая когда транспортный протокол станет узким местом в такой задаче.
|
Ну и как действовать?
|
Есть какой то пример скрипта стрелки или шкалы, которая будет обновляться при получении новых данных?
|
codepen.io/search/pens?q=meter пример скрипта стрелки или шкалы
|
Часовой пояс GMT +3, время: 22:39. |