【问题标题】:Convert web socket from JS to python将 Web 套接字从 JS 转换为 python
【发布时间】:2022-01-13 21:27:58
【问题描述】:

我正在尝试将这个小型 JavaScript websocket 应用程序转换为 Python 应用程序,以便我可以在树莓上运行它,但我就是想不通。这是我到目前为止所走的路,但我得到的只是“连接被拒绝”。我对 websockets 没有太多经验,所以我不知道从哪里开始

JavaScript:

let websocketClient
        try {
            websocketClient = new WebSocket("ws://127.0.0.1:15881/v2/feedbacks?app_id=123&app_name=hackvest")
        } catch (e) {
            console.log("PlayerSocket", e)
        }
        websocketClient.onopen = function() {
            console.log("open");
        };
        websocketClient.onmessage = function(e) {
            websocketClient.send(JSON.stringify({
                "Submit": [{
                    "Type": "turnOff",
                    "Key": ""
                }]
            }));
            console.log(e)
        };
        websocketClient.onclose = function(e) {
            console.log("close");
            console.log(e)
        };
        var n = JSON.stringify({
            Submit: [{
                Type: "turnOff",
                Key: ""
            }]
        })

Python:

import websocket
import _thread
import time

def on_message(ws, message):
    print(message)

def on_error(ws, error):
    print(error)

def on_close(ws, close_status_code, close_msg):
    print("### closed ###")

def on_open(ws):
    print("open")


if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.create_connection("ws://127.0.0.1:15881/v2/feedbacks?app_id=com.bhaptics.designer2&app_name=hackvest",
                              on_open=on_open,
                              on_message=on_message,
                              on_error=on_error,
                              on_close=on_close)

    ws.run_forever()

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript python websocket


【解决方案1】:

基于websocket-client example,它看起来像这样:

import websocket
import _thread
import time

def on_message(ws, message):
    print(message)
    message_to_send = {
        "Submit": [{
            "Type": "turnOff",
            "Key": ""
        }]}
    ws.send(message_to_send)

def on_error(ws, error):
    print(error)

def on_close(ws, close_status_code, close_msg):
    print("### closed ###")

def on_open(ws):
    def run(*args):
        for i in range(3):
            time.sleep(1)
            ws.send("Hello %d" % i)
        time.sleep(1)
        ws.close()
        print("thread terminating...")
    _thread.start_new_thread(run, ())

if __name__ == "__main__":
    websocket.enableTrace(True)
    ws = websocket.WebSocketApp("ws://127.0.0.1:15881/v2/feedbacks?app_id=123&app_name=hackvest",
                              on_open=on_open,
                              on_message=on_message,
                              on_error=on_error,
                              on_close=on_close)

    ws.run_forever()

执行前,运行:pip3 install websocket-client!

【讨论】:

    猜你喜欢
    • 2014-01-19
    • 1970-01-01
    • 2012-08-27
    • 2015-12-12
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    相关资源
    最近更新 更多