2024-10-01 19:22:21 发布
网友
我在Python中使用autobahnwamp进行套接字连接。我使用PubSub机制建立连接。连接已成功建立。在
但是我找不到一种方法来维护与服务器连接的客户端列表。在
请任何人可以建议一种方法,我可以帮助维护一个名单的IP地址连接的客户和一种方式,我可以发送答复到具体的客户使用各自的地址?在
请尽早回复。在
提前谢谢
这是一个由两部分组成的问题。第一部分是如何识别连接的web套接字的ip地址。第二部分是询问如何将信息导向特定的会话。 我从第二部分开始。在上面的注释中有一个工厂变量。可以在任何地方使用,范围如下:
factory.dispatch("http://domain.com/topic", "payload", [ excluded sessions ], [ included sessions])
会话id类似于TB15LhO8oS0MLsj6,可用于协议中的方法,如self.session_标识变量。我会这样做:
把它放在代码的顶部,一个全局变量。然后,在onSessionOpen()中:
def onSessionOpen(self): global ses_var ses_var[self.session_id] = self print "connection from ", self.peer.host, self.peer.port
此代码为您提供会话的句柄。您需要管理此变量,并从onClose()方法中的变量中删除会话。在
因此,如果您在ses_var变量中捕获了所有打开的会话,那么您可以使用dispatch将消息发布到其中的任何(和所有)会话:
factory.dispatch("http://domain.com/topic", "payload", [], factory.sessionIdsToProtos(ses_var.keys()))
请注意,session_id不是预期的参数,您必须将该id转换为实际的session对象。在
两个数组工厂调度定义不向谁发送消息以及向谁发送消息。如果将None作为第二个数组传递,则将向所有客户端发送消息,因此示例的分派可以重写为:
factory.dispatch("http://domain.com/topic", "payload", [], None)
如果要将其发送到第一个会话(例如),可以执行以下操作:
factory.dispatch("http://domain.com/topic", "payload", [], factory.sessionIdsToProtos([ses_var[0].session_id]))
这是一个由两部分组成的问题。第一部分是如何识别连接的web套接字的ip地址。第二部分是询问如何将信息导向特定的会话。 我从第二部分开始。在上面的注释中有一个工厂变量。可以在任何地方使用,范围如下:
会话id类似于TB15LhO8oS0MLsj6,可用于协议中的方法,如self.session_标识变量。我会这样做:
^{pr2}$把它放在代码的顶部,一个全局变量。然后,在onSessionOpen()中:
此代码为您提供会话的句柄。您需要管理此变量,并从onClose()方法中的变量中删除会话。在
因此,如果您在ses_var变量中捕获了所有打开的会话,那么您可以使用dispatch将消息发布到其中的任何(和所有)会话:
请注意,session_id不是预期的参数,您必须将该id转换为实际的session对象。在
两个数组工厂调度定义不向谁发送消息以及向谁发送消息。如果将None作为第二个数组传递,则将向所有客户端发送消息,因此示例的分派可以重写为:
如果要将其发送到第一个会话(例如),可以执行以下操作:
相关问题 更多 >
编程相关推荐