【问题标题】:How to make JavaScript talk with Python through local http connection?如何通过本地 http 连接让 JavaScript 与 Python 对话?
【发布时间】:2017-07-01 15:03:44
【问题描述】:

我正在编写一个脚本,该脚本通过使用套接字等的本地 HTTP 连接以编码 json 的形式将一些数据从应用程序 A 发送到应用程序 B。

应用 A 使用 python,但是在应用 B 中,您只能使用纯 JavaScript 来执行您刚刚通过 json 数据传递的操作。

这里我有一些问题,我怎样才能使用纯 JS 发送回从应用 B 内部执行的数据?它还会使用我已经在使用的端口和套接字吗?我对 JS 不是很熟悉,所以任何提示都非常适用。此外,由于这个想法的一些安全问题,我不太确定这是否可能,但也许我不知道一些事情。


app 一个python脚本伪代码:

class Connect:
    def __init__(self, port=1, host='localhost'):
        self._host = host
        self._port = port

    # Execute a HTTP POST request to the app server and send/receive JSON data
    def json_post_request(self, route, body):
        connection = http.HTTPConnection(self._host, self._port, timeout=3000)
        connection.request('POST', route, body, head)
        response = connection.getresponse()

        data = json.loads(response.read().decode('utf-8'))
        connection.close()

    # Execute a JavaScript script
    def execute_script(self, script):
        return self.json_post_request(route, ('{"js":"' + script.decode('utf-8') + '"}').encode('utf-8'))

【问题讨论】:

    标签: javascript python json sockets


    【解决方案1】:

    httplib 不是 websocket :)

    也许你需要使用包websockets

    或者尝试类似Tornado的框架

    【讨论】:

      【解决方案2】:

      这取决于您希望在两个应用之间进行的通信类型。您需要全双工通信吗?然后我建议使用websockets。您可以在 JS 或 Python 中运行服务器。你可以使用Autobahn,它在 Python 和 JS 中都有客户端/服务器。

      如果您需要特定方向的通信,您可以使用 RESTful API(HTTP 请求/响应)。在这种情况下,消息的发送者应该是客户端,而接收者应该托管 REST 服务。某种意义上这里也有一种双向通信的形式,但是你的Host无法发起通信,只能响应请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-30
        • 2020-10-03
        • 2016-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        相关资源
        最近更新 更多