Closed dagaozi closed 1 year ago
大神,你好,基于路径推送使用PathMessage可以实现,针对用户推送使用UserMesage可以实现,如何实现根据路径给某些用户推送啊,类似于这样: concept.send(new PathMessage(msg,path,listUserId))。如果我使用我自己定义一个消息类PathUserMessage,不知道 setBroadcast(false);是true,还是false。能否提供一个默认实现。
public class PathUserMessage extends ObjectMessage { public PathUserMessage(Object payload, String path,String... userIds) { this(payload,path, Arrays.asList(userIds)); }
public PathUserMessage(Object payload,String path, Collection<String> userIds) { super(payload); setBroadcast(false); getHeaders().put(PathSelector.KEY, path); getHeaders().put(UserSelector.KEY, String.join(",", userIds)); }
}
setBroadcast
用于标记本地服务如果匹配到之后是否还要转发到其他的实例,如果用户可以多端登录就设置为true
,如果不行就设置false
另外你需要自己实现一个ConnectionSelector
来适配你的消息,可以继承AbstractConnectionSelector
,然后处理连接筛选,参考PathSelector
和PathSelector
,加个Order
把顺序放到前面
大神,你好,基于路径推送使用PathMessage可以实现,针对用户推送使用UserMesage可以实现,如何实现根据路径给某些用户推送啊,类似于这样: concept.send(new PathMessage(msg,path,listUserId))。如果我使用我自己定义一个消息类PathUserMessage,不知道 setBroadcast(false);是true,还是false。能否提供一个默认实现。 public class PathUserMessage extends ObjectMessage { public PathUserMessage(Object payload, String path,String... userIds) { this(payload,path, Arrays.asList(userIds)); }
public PathUserMessage(Object payload,String path, Collection<String> userIds) { super(payload); setBroadcast(false); getHeaders().put(PathSelector.KEY, path); getHeaders().put(UserSelector.KEY, String.join(",", userIds)); }
}
setBroadcast
用于标记本地服务如果匹配到之后是否还要转发到其他的实例,如果用户可以多端登录就设置为true
,如果不行就设置false
另外你需要自己实现一个
ConnectionSelector
来适配你的消息,可以继承AbstractConnectionSelector
,然后处理连接筛选,参考PathSelector
和PathSelector
,加个Order
把顺序放到前面
参考PathSelector
和UserSelector
大神,你好,基于路径推送使用PathMessage可以实现,针对用户推送使用UserMesage可以实现,如何实现根据路径给某些用户推送啊,类似于这样: concept.send(new PathMessage(msg,path,listUserId))。如果我使用我自己定义一个消息类PathUserMessage,不知道 setBroadcast(false);是true,还是false。能否提供一个默认实现。
public class PathUserMessage extends ObjectMessage { public PathUserMessage(Object payload, String path,String... userIds) { this(payload,path, Arrays.asList(userIds)); }
public PathUserMessage(Object payload,String path, Collection<String> userIds) { super(payload); setBroadcast(false); getHeaders().put(PathSelector.KEY, path); getHeaders().put(UserSelector.KEY, String.join(",", userIds)); }
}
2.0.0版本已经默认支持,Wiki
大神,你好,基于路径推送使用PathMessage可以实现,针对用户推送使用UserMesage可以实现,如何实现根据路径给某些用户推送啊,类似于这样: concept.send(new PathMessage(msg,path,listUserId))。如果我使用我自己定义一个消息类PathUserMessage,不知道 setBroadcast(false);是true,还是false。能否提供一个默认实现。
public class PathUserMessage extends ObjectMessage { public PathUserMessage(Object payload, String path,String... userIds) { this(payload,path, Arrays.asList(userIds)); }
}