2013-05-30 42 views
0

我一直在嘗試使用python gevent-socketio庫嘗試通過套接字ID發送私人消息,但一直沒有任何運氣。我想通了一個可以通過使用命名空間將消息發送到插座:與gevent-socketio的私人消息

pkt = dict(type="event", 
name="getBuddies", 
args=' '.join(buddies), 
endpoint=self.ns_name) 
self.socket.send_packet(pkt) 

,我可以獲取和存儲從self.socket.sessId插座ID,但我不知道如何將消息發送到一個特定的套接字ID。

回答

1

一旦你有你的會話ID,您可以創建自定義mxin類的新方法,它應該是這個樣子:

class CustomBroadcastMixin(object): 
    ... 
    def broadcast_to_socket(self, session_id, event, *args): 
     """ 
     Broadcast to one socket only. 
     Aims to be used for wishper messages. 
     """ 
     returnValue = False 
     pkt = dict(type="event", 
        name=event, 
        args=args, 
        endpoint=self.ns_name) 

     try: 
      for sessid, socket in self.socket.server.sockets.iteritems(): 
       if unicode(session_id) == unicode(sessid): 
        socket.send_packet(pkt) 
        returnValue = True 
        break 
     except: 
      app.logger.exception('') 

     return returnValue 

比調用它,只要你需要它。

乾杯