Простейший вебсокет-сервер
Apr. 22nd, 2016 05:11 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я решил набросать веб-морду для управления ИК-спектрометром IRBIS, для чего опять понадобилось прикручивать вебсокеты. И опять пришлось ковыряться в предыдущем коде (веб-морда для простой управлялки на raspberry Pi). Чтобы впредь не нужно было заниматься чисткой кода, я решил сделать минимальный пример, позволяющий общаться через очередь сообщений: код на гитхабе.
Так как вебсокеты у меня используются лишь для управления железяками, т.е. всегда нужен блокирующий доступ, я в этот пример добавил блокиратор левых подключений.
При подключении клиента ему каждую секунду передается текущее время, а клиент может отослать серверу сообщение, введенное в текстовое поле. Таким образом, легко можно будет использовать этот каркас в разных управлялках.
Остается теперь придумать метод авторизации/аутентификации. Простейшее, что приходит в голову — при соединении сервер отсылает "соль", клиент шифрует введенный пароль этой "солью" и отсылает серверу. А тот проверяет, все ли ОК.
Нужно лишь найти вменяемые MD5 или SHA на жабоскрипте.
P.S. Полдня убил на верстку базы веб-морды! Совсем уже этот HTML забыл. Пытался верстать блоками, но ничего не вышло. Решил по-старому — вложенными таблицами.
Так как вебсокеты у меня используются лишь для управления железяками, т.е. всегда нужен блокирующий доступ, я в этот пример добавил блокиратор левых подключений.
При подключении клиента ему каждую секунду передается текущее время, а клиент может отослать серверу сообщение, введенное в текстовое поле. Таким образом, легко можно будет использовать этот каркас в разных управлялках.
Остается теперь придумать метод авторизации/аутентификации. Простейшее, что приходит в голову — при соединении сервер отсылает "соль", клиент шифрует введенный пароль этой "солью" и отсылает серверу. А тот проверяет, все ли ОК.
Нужно лишь найти вменяемые MD5 или SHA на жабоскрипте.
P.S. Полдня убил на верстку базы веб-морды! Совсем уже этот HTML забыл. Пытался верстать блоками, но ничего не вышло. Решил по-старому — вложенными таблицами.
no subject
Date: 2016-04-24 09:37 am (UTC)no subject
Date: 2016-04-24 12:35 pm (UTC)no subject
Date: 2016-04-24 02:49 pm (UTC)// кстати, когда я первую систему старт-финиш делал для даунхилла, для упрощения кросс-платформенности сделал ее эмулятором клавиатуры. Воткнул в планшет — вуаля!
no subject
Date: 2016-04-24 04:15 pm (UTC)А то так, упрощая, можно и до консоли дойти, браго ssh даже на телефоне есть :)
no subject
Date: 2016-04-25 05:29 am (UTC)> так, упрощая, можно и до консоли дойти
Не было бы нужды для стороннего народа делать, консольные клиенты и оставил бы. У меня подавляющее большинство велосипедов консольное, т.к. гуи там нафиг не втарахтелся!
> ssh даже на телефоне есть
Скажи это моему "бабушкофону" ☺
no subject
Date: 2016-04-25 09:23 am (UTC)на бабушкофоне будет проблема и с браузером :)
no subject
Date: 2016-04-25 10:49 am (UTC)