LINUX.ORG.RU

отправка сообщения в webSocket из bash

 , ,


0

5

Доброго времени суток!

Второй день бьюсь над проблемой отправки сообщения на веб сокет из bash скрипта, если кто-то в курсе вопроса не проходите мимо, помогите. Написал скрипт он поднимает коннект, переходит на веб сокет, даже получает данные отправляемые с сервера, но вот как отправить на сервер данные, ума не приложу. Скрипт зависает на моменте вывода потока из сокета и все.

 
#!/bin/sh -ef
ip='localhost'
port=8080

exec 3<>/dev/tcp/$ip/$port
if [ $? = 0 ]; then
 echo -e "GET / HTTP/1.1\r\nHost: localhost\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Key: tQXaRIOk4sOhgoq7SBs43g==\r\nSec-WebSocket-Version: 13\r\n\r\n" >&3
 cat <&3
 echo -e "blablabla" >&3
fi


Доброго времени суток

%$R@#^$^&@#!!!...

anonymous
()

Тащемта websockets бинарный протокол. После handshake в стиле HTTP тебе нужно формировать фреймы. https://tools.ietf.org/html/rfc6455#section-5.2

Данные нужно ещё и xor'ить рандомным ключем (Mask), это обязательное условие для клиента.

Можешь задавать конкретные вопросы, я реализовывал данный протокол.

Chaser_Andrey ★★★★★
()

Напиши на основе примера из libwebsockets (или из моей репы на гитхабе/сосфорже) простую обертку на сях. А потом из баша что хочешь отправляй/принимай.

Eddy_Em ☆☆☆☆☆
()

Решил задачу через php, пришлось конечно для этого поставить php-cli, собственно после этого перенес всю логику в php, на bash оставил только демона который вызывает скрипт на php, вот если кому надо: http://stackoverflow.com/questions/7160899/websocket-client-in-php/16608429#1...

artsnz
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.