如何在Python SDK中取消订阅pubnub频道

1 投票
1 回答
775 浏览
提问于 2025-04-18 03:06

我正在使用 pubnub 的 Python SDK。
我有一些用 Python 写的测试环境,现在想写代码让 pubnub 客户端订阅一个频道,并且可以取消订阅。在服务器上,我在检查服务器是否收到了加入和离开的消息(我使用的是存在频道)。

问题是,当线程结束时,我没有收到离开消息,也没有看到 Python 代码中有明确的取消订阅的调用。

有什么想法吗?

谢谢。

我的代码大概是这样的:

    def main(user_id,channel_name):
        t = Thread(target=rt_subscribe,args=(user_id,channel_name))

    def rt_subscribe(user_id,channel_name):
        def get_message(msg):
            print 'got message: %s' % msg
            return True

        pb = Pubnub(publish_key=PUBLISH_KEY, 
                  subscribe_key=SUBSCRIBE_KEY, 
                  pres_uuid=user_id,
                  ssl_on=False)
        pb.subscribe({
                   'channel'  : channel_name,
                   'callback' : get_message 
                })

1 个回答

1

PubNub Python SDK 取消订阅

在这里有几个需要考虑的事情,首先是要使用正确的SDK,因为PubNub提供了三种Python SDK可供选择。此外,你还可以通过简单的REST调用强制触发一个离开事件。不过,如果你想通过Python取消订阅,建议使用我们的Python Twisted SDK。

PubNub Python Twisted SDK的GitHub仓库 - 立即下载

你可以这样进行订阅和取消订阅:

pubnub.subscribe({ 'channel' : chan, 'callback' : receive_processor })
pubnub.unsubscribe({ 'channel' : chan })

没错,就是这么简单。:-)

PubNub 强制离开事件

你可以使用以下格式发出REST调用,以强制在某个频道上触发离开事件。

https://pubsub.pubnub.com/v2/presence/sub_key/YOUR_SUB_KEY/channel/YOUR_CHANNEL/leave?uuid=YOUR_USER_UUID

撰写回答