Browse Source

Redisson 3.9+ compatibility fixed

master
Nikita Koksharov 6 years ago
parent
commit
f28fecb865
  1. 10
      src/main/java/com/corundumstudio/socketio/store/RedissonPubSubStore.java

10
src/main/java/com/corundumstudio/socketio/store/RedissonPubSubStore.java

@ -53,12 +53,12 @@ public class RedissonPubSubStore implements PubSubStore {
@Override @Override
public <T extends PubSubMessage> void subscribe(PubSubType type, final PubSubListener<T> listener, Class<T> clazz) { public <T extends PubSubMessage> void subscribe(PubSubType type, final PubSubListener<T> listener, Class<T> clazz) {
String name = type.toString(); String name = type.toString();
RTopic<T> topic = redissonSub.getTopic(name);
int regId = topic.addListener(new MessageListener<T>() {
RTopic topic = redissonSub.getTopic(name);
int regId = topic.addListener(PubSubMessage.class, new MessageListener<PubSubMessage>() {
@Override @Override
public void onMessage(CharSequence channel, T msg) {
public void onMessage(CharSequence channel, PubSubMessage msg) {
if (!nodeId.equals(msg.getNodeId())) { if (!nodeId.equals(msg.getNodeId())) {
listener.onMessage(msg);
listener.onMessage((T)msg);
} }
} }
}); });
@ -78,7 +78,7 @@ public class RedissonPubSubStore implements PubSubStore {
public void unsubscribe(PubSubType type) { public void unsubscribe(PubSubType type) {
String name = type.toString(); String name = type.toString();
Queue<Integer> regIds = map.remove(name); Queue<Integer> regIds = map.remove(name);
RTopic<Object> topic = redissonSub.getTopic(name);
RTopic topic = redissonSub.getTopic(name);
for (Integer id : regIds) { for (Integer id : regIds) {
topic.removeListener(id); topic.removeListener(id);
} }

Loading…
Cancel
Save