WebSocket
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
WebSocket
Делаю проект. Это Linux.
Заказчик хочет, чтобы GUI интерфейс, мнемосхема - реализовывался как WEB страница. В этом есть резон, если работать/управлять этим интерфейсом работник может (потенциально): со стационарного компьютера, ноутбука (по сети, удалённо), с Linux, Windows и все др. ... с планшета, смартфона и т.д. По крайней мере - в принципе.
Разработчики WEB морды, мнемосхемы в качестве интерфейса с бэкэндом предлагают WebSocket ... так им проще ... или это единственное, что они знают.
Бэкэнд - логика работы (это, укрупнённо, торговый автомат, киоск ... что-то подобное).
Бэкэнд - как вариант, может исполняться на C/C++ или Python, и должен он, естественно, реализовывать прежде всего сервер WebSocket.
Ну а вниз он должен по Modbus RTU управлять некоторым специализированным контроллером (проприетарным), который работает с датчиками и исполнительными механизмами.
Ну вот, кажется, и всё.
Заказчик хочет, чтобы GUI интерфейс, мнемосхема - реализовывался как WEB страница. В этом есть резон, если работать/управлять этим интерфейсом работник может (потенциально): со стационарного компьютера, ноутбука (по сети, удалённо), с Linux, Windows и все др. ... с планшета, смартфона и т.д. По крайней мере - в принципе.
Разработчики WEB морды, мнемосхемы в качестве интерфейса с бэкэндом предлагают WebSocket ... так им проще ... или это единственное, что они знают.
Бэкэнд - логика работы (это, укрупнённо, торговый автомат, киоск ... что-то подобное).
Бэкэнд - как вариант, может исполняться на C/C++ или Python, и должен он, естественно, реализовывать прежде всего сервер WebSocket.
Ну а вниз он должен по Modbus RTU управлять некоторым специализированным контроллером (проприетарным), который работает с датчиками и исполнительными механизмами.
Ну вот, кажется, и всё.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: WebSocket
Попался мне любопытный проект - Websocket. Сервер (Python) & Клиент (JavaScript)Olej писал(а): Бэкэнд - как вариант, может исполняться на C/C++ или Python, и должен он, естественно, реализовывать прежде всего сервер WebSocket.
После минимальных трансформаций (там всё было Windows и т.д.) можете попробовать ... у меня этот проектик заработал в моей LAN + между x86 стационаром и ARM Rapsberry Pi.Опубліковано 18.11.2018
Сервер запускается на 192.168.1.99:9090 (у меня это Rapsberry Pi).
И нужно под конкретику отредактировать строки:
- ws-server.py
Код: Выделить всё
PORT=9090
HOST='192.168.1.99'
Код: Выделить всё
var wsUri = "ws://192.168.1.99:9090/"
Код: Выделить всё
olej@raspberrypi:~/WEBSOCKET $
python3 ws-server.py
New client connected and was given id 1
Client(1) said: Hi everybody!
New client connected and was given id 2
Client(2) said: Hi everybody!
Client(2) said:
Client(2) said: послано с RPi
Client(1) said: отвечено для RPi
Client(1) said: повторяем
Client(1) said: повторяем
Client(1) said: повторяем
...
Вписываете сообщение + Send - и оно транслируется на все хосты.
- Вложения
-
- alislab.tgz
- (4.53 КБ) 93 скачивания
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: WebSocket
Из пакетов имеющихся в репозитории:
Устанавливаем:
Больше всего меня интересуют (пока) GIT проектов:
Код: Выделить всё
olej@ACER:~$ aptitude search python3-websocket
p python3-websocket - WebSocket client library - Python 3.x
p python3-websockets - implementation of the WebSocket Protocol (RFC 6455)
Код: Выделить всё
olej@ACER:~$ aptitude show python3-websockets
...
olej@ACER:~$ aptitude show python3-websocket
...
Код: Выделить всё
olej@ACER:~$ pip3 list | grep websocket
websocket-client 0.53.0
websocket-server 0.4
websockets 7.0
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websockets$ pip3 show websocket-client
Name: websocket-client
Version: 0.53.0
Summary: WebSocket client for Python. hybi13 is supported.
Home-page: https://github.com/websocket-client/websocket-client.git
Author: liris
Author-email: liris.pp@gmail.com
License: LGPL
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websockets$ pip3 show websocket-server
Name: websocket-server
Version: 0.4
Summary: A simple fully working websocket-server in Python with no external dependencies
Home-page: https://github.com/Pithikos/python-websocket-server
Author: Johan Hanssen Seferidis
Author-email: manossef@gmail.com
License: MIT
Location: /usr/local/lib/python3.7/dist-packages
Requires:
Required-by:
Код: Выделить всё
olej@ACER:~$ pip3 show websockets
Name: websockets
Version: 7.0
Summary: An implementation of the WebSocket Protocol (RFC 6455 & 7692)
Home-page: https://github.com/aaugustin/websockets
Author: Aymeric Augustin
Author-email: aymeric.augustin@m4x.org
License: BSD
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: WebSocket
1.
Примеров настолько много и интересных, что приводить их поштучно нет сил, все проверенные примеры собраны в архив + там же файл .hist с тем как это запускалось.
Вот так выглядит интерактивный WEB-клиент (JavaScript):
Пожалуй, самая обстоятельная реализация:Olej писал(а):Код: Выделить всё
olej@ACER:~$ pip3 show websockets Name: websockets Version: 7.0 Summary: An implementation of the WebSocket Protocol (RFC 6455 & 7692) Home-page: https://github.com/aaugustin/websockets Author: Aymeric Augustin Author-email: aymeric.augustin@m4x.org License: BSD Location: /usr/lib/python3/dist-packages Requires: Required-by:
Отдельная страница очень обстоятельной документации: Getting started, с хорошими примерами кода.websockets is a library for building WebSocket servers and clients in Python with a focus on correctness and simplicity.
Built on top of asyncio, Python's standard asynchronous I/O framework, it provides an elegant coroutine-based API.
Примеров настолько много и интересных, что приводить их поштучно нет сил, все проверенные примеры собраны в архив + там же файл .hist с тем как это запускалось.
Вот так выглядит интерактивный WEB-клиент (JavaScript):
- Вложения
-
- websockets.tgz
- (42.55 КБ) 92 скачивания
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: WebSocket
2.
GIT: https://github.com/websocket-client/websocket-client
Olej писал(а):Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websockets$ pip3 show websocket-client Name: websocket-client Version: 0.53.0 Summary: WebSocket client for Python. hybi13 is supported. Home-page: https://github.com/websocket-client/websocket-client.git Author: liris Author-email: liris.pp@gmail.com License: LGPL Location: /usr/lib/python3/dist-packages Requires: Required-by:
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websockets$ pip3 show websocket-client
Name: websocket-client
Version: 0.53.0
Summary: WebSocket client for Python. hybi13 is supported.
Home-page: https://github.com/websocket-client/websocket-client.git
Author: liris
Author-email: liris.pp@gmail.com
License: LGPL
Location: /usr/lib/python3/dist-packages
Requires:
Required-by:
Я качал с GIT, потому как у них там есть тестовый клиент wsdump.py, который не ставится с Python пакета:websocket-client module is WebSocket client for python. This provide the low level APIs for WebSocket. All APIs are the synchronous functions.
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websocket$ tree websocket-client-master
websocket-client-master
├── bin
│ └── wsdump.py
├── ChangeLog
├── compliance
│ ├── fuzzingserver.json
│ ├── README.md
│ └── test_fuzzingclient.py
├── examples
│ ├── echoapp_client.py
│ └── echo_client.py
├── LICENSE
├── MANIFEST.in
├── README.rst
├── setup.cfg
├── setup.py
├── upload.sh
└── websocket
├── _abnf.py
├── _app.py
├── _cookiejar.py
├── _core.py
├── _exceptions.py
├── _handshake.py
├── _http.py
├── __init__.py
├── _logging.py
├── _socket.py
├── _ssl_compat.py
├── tests
│ ├── data
│ │ ├── header01.txt
│ │ └── header02.txt
│ ├── __init__.py
│ ├── test_cookiejar.py
│ └── test_websocket.py
├── _url.py
└── _utils.py
6 directories, 31 files
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: WebSocket
У них есть возможность тестово подключаться к их WebSocket серверу в сети:Olej писал(а): Я качал с GIT, потому как у них там есть тестовый клиент wsdump.py, который не ставится с Python пакета:
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websocket/websocket-client-master/bin$ python3 wsdump.py ws://echo.websocket.org/
Press Ctrl+C to quit
> adsgadfsfghh
< adsgadfsfghh
> 11111111111116245634553467
< 11111111111116245634553467
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websocket/websocket-client-master/bin$ host echo.websocket.org
echo.websocket.org has address 174.129.224.73
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websocket$ python3 client1.py
Sending 'Hello, World'...
Sent
Receiving...
Received 'Hello, World'
- Вложения
-
- websocket-client.tgz
- (36.21 КБ) 82 скачивания
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: WebSocket
3.
GIT: https://github.com/Pithikos/python-websocket-server
сервер их здесь: https://github.com/Pithikos/python-webs ... /server.py
Установку всего пакета можно сделать так, средствами Python:
Сервер выполняется (у меня там чуть-чуть исправления):
Интерес здесь в том, что клиент - WEB-based, HTML-файл, который открываем в браузере:
Olej писал(а):Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websockets$ pip3 show websocket-server Name: websocket-server Version: 0.4 Summary: A simple fully working websocket-server in Python with no external dependencies Home-page: https://github.com/Pithikos/python-websocket-server Author: Johan Hanssen Seferidis Author-email: manossef@gmail.com License: MIT Location: /usr/local/lib/python3.7/dist-packages Requires: Required-by:
Код: Выделить всё
olej@ACER:~$ pip3 show websocket-server
Name: websocket-server
Version: 0.4
Summary: A simple fully working websocket-server in Python with no external dependencies
Home-page: https://github.com/Pithikos/python-websocket-server
Author: Johan Hanssen Seferidis
Author-email: manossef@gmail.com
License: MIT
Location: /usr/local/lib/python3.7/dist-packages
Requires:
Required-by:
сервер их здесь: https://github.com/Pithikos/python-webs ... /server.py
Установку всего пакета можно сделать так, средствами Python:
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websocket-server$ pip install git+https://github.com/Pithikos/python-websocket-server
Collecting git+https://github.com/Pithikos/python-websocket-server
Cloning https://github.com/Pithikos/python-websocket-server to /tmp/pip-req-build-g4bm23jm
Running command git clone -q https://github.com/Pithikos/python-websocket-server /tmp/pip-req-build-g4bm23jm
Requirement already satisfied (use --upgrade to upgrade): websocket-server==0.4 from git+https://github.com/Pithikos/python-websocket-server in /usr/local/lib/python3.7/dist-packages
Building wheels for collected packages: websocket-server
Building wheel for websocket-server (setup.py) ... done
Stored in directory: /tmp/pip-ephem-wheel-cache-6ynaf29h/wheels/22/62/a6/6ddf480aca95352964b8cbd3b42ac4013d8768d97e67e4f775
Successfully built websocket-server
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/WaterBiz/websocket/websocket-server$ python3 server.py
Listening on port 9001 for clients..
New client connected and was given id 1
Client(1) said: 1111
Client(1) said: 2222222
Client(1) said: 333333
Client asked to close connection.
Client(1) disconnected
^CServer terminated.
- Вложения
-
- websocket-server.tgz
- (51.98 КБ) 79 скачиваний
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей