Python 以干净的方式限制发布中的订阅者&;订阅模式

Python 以干净的方式限制发布中的订阅者&;订阅模式,python,websocket,autobahn,Python,Websocket,Autobahn,在中,我想限制给定@exportSub(…)的订户数量。你怎么知道订户的数量 (来自) 我可能可以使用自己的WampServerFactory,重写onClientSubscribed和onClientSubscribed方法,并使用内部数组变量来完成此操作。。。但我想知道是否有更干净的方法 class MyFactory(WampServerFactory): def onClientSubscribed(self, *a, **k): WampServerFac

在中,我想限制给定
@exportSub(…)
的订户数量。你怎么知道订户的数量

(来自)

我可能可以使用自己的
WampServerFactory
,重写
onClientSubscribed
onClientSubscribed
方法,并使用内部数组变量来完成此操作。。。但我想知道是否有更干净的方法

  class MyFactory(WampServerFactory):
     def onClientSubscribed(self, *a, **k):
        WampServerFactory.onClientSubscribed(self, a, k)
        print '=== client subscribed '

     def onClientUnsubscribed(self, *a, **k):
        WampServerFactory.onClientUnsubscribed(self, a, k)
        print '=== client unsubscribed '

可以找到代码。

不幸的是,目前没有支持该功能的公共API

我同意类似于
myWampFactory.getSubscribers(someTopic)
的东西在某些情况下是有用的。如果您介意,请在GitHub上提交一个问题,以便我们跟踪功能请求

在您提到的两个解决方法中,重写OnClient Subscribed似乎会导致订阅的第二次簿记,我发现这比访问内部(
myFactory.subscriptions
)更令人不满意

  class MyFactory(WampServerFactory):
     def onClientSubscribed(self, *a, **k):
        WampServerFactory.onClientSubscribed(self, a, k)
        print '=== client subscribed '

     def onClientUnsubscribed(self, *a, **k):
        WampServerFactory.onClientUnsubscribed(self, a, k)
        print '=== client unsubscribed '