小编Ste*_*ker的帖子

在asyncio协议/服务器之间进行通信

我正在尝试编写一个服务器端事件服务器,我可以使用telnet连接它,并将telnet内容推送到浏览器.使用Python和asyncio背后的想法是使用尽可能少的CPU,因为它将在Raspberry Pi上运行.

到目前为止,我有以下使用库中的库:https://pypi.python.org/pypi/asyncio-sse/0.1,它使用asyncio.

我还复制了一个使用asyncio的telnet服务器.

两者都分开工作,但我不知道如何将两者结合在一起.据我了解,我需要调用send()SSEHandler从内部类Telnet.data_received,但我不知道如何访问它.这两个"服务器"都需要在循环中运行才能接受新连接或推送数据.

任何人都可以帮忙,或指向另一个方向?

import asyncio
import sse

# Get an instance of the asyncio event loop
loop = asyncio.get_event_loop()

# Setup SSE address and port
sse_host, sse_port = '192.168.2.25', 8888

class Telnet(asyncio.Protocol):
    def connection_made(self, transport):
        print("Connection received!");
        self.transport = transport

    def data_received(self, data):
        print(data)
        self.transport.write(b'echo:')
        self.transport.write(data)

        # This is where I want to send data via SSE
        # SSEHandler.send(data)

        # Things I've tried :(
        #loop.call_soon_threadsafe(SSEHandler.handle_request());
        #loop.call_soon_threadsafe(sse_server.send("PAH!"));

    def connection_lost(self, esc): …
Run Code Online (Sandbox Code Playgroud)

python python-asyncio

3
推荐指数
1
解决办法
1700
查看次数

标签 统计

python ×1

python-asyncio ×1