根据文档,get_subscription_channel在router.py中给出了通道名称。
当我尝试更改retrun值时,它仍然有效。
如何将消息限制到特定的组/通道。我需要在前端做的事情。
from swampdragon import route_handler
from swampdragon.route_handler import BaseRouter
class ChatRouter(BaseRouter):
route_name = 'chat-route'
valid_verbs = ['chat', 'subscribe']
def get_subscription_channels(self, **kwargs):
return ['chatrm']
def chat(self, *args, **kwargs):
errors = {}
if errors:
self.send_error(errors)
else:
self.send({'status': 'ok'})
self.publish(self.get_subscription_channels(), kwargs)
route_handler.register(ChatRouter)function subscribe () {
swampdragon.subscribe('chat-route', 'local-channel', null, function (context, data) {
// any thing that happens after successfully subscribing
}, function (context, data) {
// any thing that happens if subscribing failed
});
}发布于 2015-12-28 18:24:41
我也遇到了同样的问题。这里的问题是,您没有将数据发布到您订阅了的通道。您订阅了名为'local-channel'的频道,但在您的router.py中,您正在发布或路由另一个名为'chatrm‘的频道的数据。这就是你没有收到任何通知的原因。有两种方法可以修复它。
1.您需要在router.py中更改get_subscription_channels方法,如下所示。
def get_subscription_channels(self, **kwargs):
return ['local-channel']或
2.更改subscription方法,如下所示:
function subscribe () {
swampdragon.subscribe('chat-route', 'chatrm', null, function (context, data) {
// any thing that happens after successfully subscribing
}, function (context, data) {
// any thing that happens if subscribing failed
});
}https://stackoverflow.com/questions/32168728
复制相似问题