如何获取高速公路IP地址?

2024-10-01 19:22:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中使用autobahnwamp进行套接字连接。我使用PubSub机制建立连接。连接已成功建立。在

但是我找不到一种方法来维护与服务器连接的客户端列表。在

请任何人可以建议一种方法,我可以帮助维护一个名单的IP地址连接的客户和一种方式,我可以发送答复到具体的客户使用各自的地址?在

请尽早回复。在

提前谢谢


Tags: 方法服务器客户端列表客户地址方式pubsub
1条回答
网友
1楼 · 发布于 2024-10-01 19:22:21

这是一个由两部分组成的问题。第一部分是如何识别连接的web套接字的ip地址。第二部分是询问如何将信息导向特定的会话。 我从第二部分开始。在上面的注释中有一个工厂变量。可以在任何地方使用,范围如下:

factory.dispatch("http://domain.com/topic", "payload", [ excluded sessions ], [ included sessions])

会话id类似于TB15LhO8oS0MLsj6,可用于协议中的方法,如self.session_标识变量。我会这样做:

^{pr2}$

把它放在代码的顶部,一个全局变量。然后,在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]))

相关问题 更多 >

    热门问题