使用Node和Laravel
我有两个角色,医生和病人......
当患者采取行动A时,我希望广播出现在医生列表中,而不是所有医生列表,但是列出了这些医生。
在我的测试中,我能够通过在节点中使用redis订阅前缀为Doctor和连字符然后UserID来完成此操作...
redis.subscribe('Doctor-1', function(err, count) {
});
但是,对于生产,我不能硬编码该ID,我需要的是如下所示
redis.subscribe('Doctor-*', function(err, count) {
});
但通配符似乎不起作用......
关于如何订阅通配符的任何想法?
回答如下:Redis.io, PubSub Documentation
Wikipedia, Glob Programming
Redis Pub / Sub实现支持模式匹配。客户端可以订阅glob样式模式,以便接收发送到与给定模式匹配的通道名称的所有消息。
例如:
PSUBSCRIBE news.*
所以你的代码片段可以改为
redis.subscribe('Doctor.*', function(err, count) {});
所以它会收到ID为Doctor.1
或更深入的医生
Doctors.<groupId>.<DoctorId>
等。