Как отписаться от pubnub-канала Python SDK

Я использую pubnub с Python SDK. У меня есть тестовая среда, написанная на python, и я пытаюсь написать код 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 
                })

person eran    schedule 17.04.2014    source источник
comment
Возможно, это поможет: stackoverflow.com/questions/19547804/   -  person ρss    schedule 17.04.2014


Ответы (1)


PubNub Python SDK Отписаться

Здесь нужно учитывать несколько моментов, и первый — использовать правильный SDK для работы, поскольку в PubNub доступны 3 варианта Python SDK. Также вы можете принудительно вызвать Leave Event, используя простой вызов REST. Но сначала, если вы хотите отказаться от подписки через Python, вы можете рассмотреть возможность использования нашего SDK Python Twisted.

Репозиторий GitHub для PubNub Python Twisted SDK — скачать сейчас

Вы будете оформлять подписку и отписываться следующим образом:

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
person Stephen Blum    schedule 17.04.2014
comment
@eran, через несколько недель у нас также выйдет новый унифицированный Python SDK, который упростит это. Если вам нужен расширенный доступ к бета-версии, свяжитесь с нами по адресу [email protected], и мы вас свяжем! - person Geremy; 17.04.2014
comment
@Джереми делюкс. Да, в самом деле. - person Stephen Blum; 17.04.2014