2014-04-17 70 views
1

我正在使用pubnub與python SDK。 我有一些測試環境用python編寫,我試圖編寫python代碼來添加pubnub客戶端訂閱頻道和取消訂閱。在服務器中,我正在檢查服務器是否加入並留下消息(我正在使用狀態通道)。如何取消訂閱pubnub頻道Python SDK

問題是,當線程死亡時,我不會留下留言,並且在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 
       }) 
+0

這也許可以幫助:http://stackoverflow.com/questions/19547804/cannot-unsubscribe-with-pubnub –

回答

0

PubNub的Python SDK退訂

有幾件事情需要考慮,並第一個是使用適合工作的正確的SDK爲PubNub有3個的Python SDK可用選項。您也可以使用簡單的REST調用強制調用Leave Event。但首先,如果您想通過Python取消訂閱,您可以考慮使用我們的Python Twisted SDK。

GitHub Repository for 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 
+1

@eran,我們也有一個新的統一的Python SDK出來在幾個星期內,將簡化這個。如果您需要高級測試版訪問權限,請通過[email protected]與我們聯繫,我們會幫您解決問題! – Geremy

+0

@Geremy豪華。確實是的。 – PubNub