client_connection.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:parsec-cloud 作者: Scille 项目源码 文件源码
def client_dispatcher_factory(client_context):
    def perform_push_client_msg(intent):
        client_context.queued_pushed_events.put_nowait(intent.payload)

    @do
    def perform_client_subscribe_event(intent):
        yield Effect(ERegisterEvent(EClientEvent, intent.event, intent.sender))
        # key = (intent.event, intent.sender)

        # def on_event(sender):
        #     payload = ejson_dumps({'event': intent.event, 'sender': sender})
        #     client_context.queued_pushed_events.put_nowait(payload)

        # # Attach the callbacks to the client context to make them have the same
        # # lifetime given event registration expires when callback is destroyed
        # # TODO: allow a subset of the possible events
        # client_context.subscribed_events[key] = on_event
        # signal(intent.event).connect(on_event, sender=intent.sender)

    @do
    def perform_client_unsubscribe_event(intent):
        yield Effect(EUnregisterEvent(EClientEvent, intent.event, intent.sender))
        # key = (intent.event, intent.sender)
        # try:
        #     del client_context.subscribed_events[key]
        # except KeyError:
        #     pass

    def perform_client_event(intent):
        payload = ejson_dumps({'event': intent.event, 'sender': intent.sender})
        client_context.queued_pushed_events.put_nowait(payload)

    return TypeDispatcher({
        EPushClientMsg: perform_push_client_msg,
        EClientSubscribeEvent: perform_client_subscribe_event,
        EClientUnsubscribeEvent: perform_client_unsubscribe_event,
        EClientEvent: perform_client_event
    })
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号