Передача приём и отображение 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, время: 08:16. |