因此,我试图在brython ( python3的javascript实现)中使用websockets。不幸的是,我运气不好。
根据文档,函数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/"))似乎都不起作用。
我在brython的“站点镜像”下载中找到了一个文件py_websocket.js文件,但仍然无法实现。
我不确定这是否只是没有实现,或者我在使用brython的JSObject()时遗漏了一个重要的概念。
发布于 2013-07-29 12:54:16
下面是一个使用内置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站点需要使用更多关于web套接字的文档来完成。
https://stackoverflow.com/questions/17918019
复制相似问题