eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2016-04-22 05:11 pm
Entry tags:

Простейший вебсокет-сервер

Я решил набросать веб-морду для управления ИК-спектрометром IRBIS, для чего опять понадобилось прикручивать вебсокеты. И опять пришлось ковыряться в предыдущем коде (веб-морда для простой управлялки на raspberry Pi). Чтобы впредь не нужно было заниматься чисткой кода, я решил сделать минимальный пример, позволяющий общаться через очередь сообщений: код на гитхабе.

Так как вебсокеты у меня используются лишь для управления железяками, т.е. всегда нужен блокирующий доступ, я в этот пример добавил блокиратор левых подключений.

При подключении клиента ему каждую секунду передается текущее время, а клиент может отослать серверу сообщение, введенное в текстовое поле. Таким образом, легко можно будет использовать этот каркас в разных управлялках.

Остается теперь придумать метод авторизации/аутентификации. Простейшее, что приходит в голову — при соединении сервер отсылает "соль", клиент шифрует введенный пароль этой "солью" и отсылает серверу. А тот проверяет, все ли ОК.
Нужно лишь найти вменяемые MD5 или SHA на жабоскрипте.

P.S. Полдня убил на верстку базы веб-морды! Совсем уже этот HTML забыл. Пытался верстать блоками, но ничего не вышло. Решил по-старому — вложенными таблицами.

[identity profile] 1i7.livejournal.com 2016-04-22 11:19 pm (UTC)(link)
>Решил по-старому — вложенными таблицами.

не-не,

[div style="display: table"]
[div style="display: table-row"]
[div style="display: table-cell"]
я в ячейге
[/div]
[/div]
[/div]

[identity profile] dimas.livejournal.com 2016-04-23 10:13 pm (UTC)(link)
Я, когда надо быстро поднять веб-сервер, и питон устраивает, просто беру bottle. Для продакшена не пойдет, а для девелопмента-тестирования - самое то.

Не проще взять какой-нить яваскриптовый движок, и просто отдавать данные рестом? Заодно бонусом будут всякие шкурки-темы ...

[identity profile] masterspammer.livejournal.com 2016-04-25 01:28 am (UTC)(link)
http://masterspammer.narod.ru/md5.js вот порт с C; стандартные тести от сишной версии проходили. На Latin-1 точно работает, на нелатинских символах лучше проверить.