3

所以我试图在 brython 中使用 websockets,python3 的 javascript 实现。不幸的是,我运气不太好。

根据文档,函数 JSObject() 可用于在 brython 中操作 JS 对象,但我在 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.jsbrython 的“站点镜像”下载中找到了一个文件文件,但仍然无法实现它。

我不确定这是否只是没有实现,或者我是否在使用 brython 时遗漏了一个重要概念JSObject()

4

1 回答 1

4

这是一个使用 py_websocket 中包含的内置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 站点需要完成更多关于 Web 套接字的文档

于 2013-07-29T12:54:16.343 回答