Как я могу создать websocket JSObject в brython?
Поэтому я пытаюсь использовать websockets в brython, javascript-реализации python3. К сожалению, мне не очень везет.
Согласно документации, функция JSObject () может использоваться для управления объектами JS в brython, но мне не повезло с этим в websockets. Я пытаюсь протестировать его с помощью echoserver: http://www.websocket.org/echo.html (который отлично работает, когда я использую код javascript).
Ни ws = JSObject(WebSocket("ws://echo.websocket.org/"))
, ни ws = JSObject(new WebSocket("ws://echo.websocket.org/"))
, по-видимому, не работа.
Я нашел файл py_websocket.js
как часть загрузки "зеркала сайта" brython, но все еще не смог его реализовать.
Я не уверен, что это просто не реализовано, или если я упускаю жизненно важную концепцию в использовании brython'S JSObject()
.
1 ответ:
Вот пример использования встроенной функции
websocket()
, включенной в py_websocket, и сервера echo.websocket.org :<html> <head> <meta charset="iso-8859-1"> <script src="/src/brython.js"></script> <script type="text/python3"> def on_open(): # Web Socket is connected, send data using send() data = doc["data"].value if data: ws.send(data) alert("Message is sent") def on_message(evt): # message received from server alert("Message received : %s" %evt.data) def on_close(evt): # websocket is closed alert("Connection is closed") ws = None def _test(): global ws # open a web socket ws = websocket("wss://echo.websocket.org") # attach functions to web sockets events ws.on_open = on_open ws.on_message = on_message ws.on_close= on_close def close_connection(): ws.close() </script> </head> <body onload="brython(1)"> <input id="data"> <button onclick="_test()">Run WebSocket</button> <p><button onclick="close_connection()">Close connection</button> </body> </html>
Код должен быть понятным. Сайт Brython должен быть дополнен дополнительной документацией о веб-сокетах