Browse Source

Redisson compatibility fixed. #296

master
Nikita 10 years ago
parent
commit
b55c32050f
  1. 15
      src/main/java/com/corundumstudio/socketio/store/RedissonPubSubStore.java
  2. 4
      src/main/java/com/corundumstudio/socketio/store/RedissonStore.java
  3. 9
      src/main/java/com/corundumstudio/socketio/store/RedissonStoreFactory.java

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

@ -15,14 +15,11 @@
*/ */
package com.corundumstudio.socketio.store; package com.corundumstudio.socketio.store;
import io.netty.util.internal.PlatformDependent;
import java.util.Queue; import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentMap;
import org.redisson.Redisson;
import org.redisson.RedissonClient;
import org.redisson.core.MessageListener; import org.redisson.core.MessageListener;
import org.redisson.core.RTopic; import org.redisson.core.RTopic;
@ -30,15 +27,17 @@ import com.corundumstudio.socketio.store.pubsub.PubSubListener;
import com.corundumstudio.socketio.store.pubsub.PubSubMessage; import com.corundumstudio.socketio.store.pubsub.PubSubMessage;
import com.corundumstudio.socketio.store.pubsub.PubSubStore; import com.corundumstudio.socketio.store.pubsub.PubSubStore;
import io.netty.util.internal.PlatformDependent;
public class RedissonPubSubStore implements PubSubStore { public class RedissonPubSubStore implements PubSubStore {
private final Redisson redissonPub;
private final Redisson redissonSub;
private final RedissonClient redissonPub;
private final RedissonClient redissonSub;
private final Long nodeId; private final Long nodeId;
private final ConcurrentMap<String, Queue<Integer>> map = PlatformDependent.newConcurrentHashMap(); private final ConcurrentMap<String, Queue<Integer>> map = PlatformDependent.newConcurrentHashMap();
public RedissonPubSubStore(Redisson redissonPub, Redisson redissonSub, Long nodeId) {
public RedissonPubSubStore(RedissonClient redissonPub, RedissonClient redissonSub, Long nodeId) {
this.redissonPub = redissonPub; this.redissonPub = redissonPub;
this.redissonSub = redissonSub; this.redissonSub = redissonSub;
this.nodeId = nodeId; this.nodeId = nodeId;
@ -55,7 +54,7 @@ public class RedissonPubSubStore implements PubSubStore {
RTopic<T> topic = redissonSub.getTopic(name); RTopic<T> topic = redissonSub.getTopic(name);
int regId = topic.addListener(new MessageListener<T>() { int regId = topic.addListener(new MessageListener<T>() {
@Override @Override
public void onMessage(T msg) {
public void onMessage(String channel, T msg) {
if (!nodeId.equals(msg.getNodeId())) { if (!nodeId.equals(msg.getNodeId())) {
listener.onMessage(msg); listener.onMessage(msg);
} }

4
src/main/java/com/corundumstudio/socketio/store/RedissonStore.java

@ -18,13 +18,13 @@ package com.corundumstudio.socketio.store;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import org.redisson.Redisson;
import org.redisson.RedissonClient;
public class RedissonStore implements Store { public class RedissonStore implements Store {
private final Map<String, Object> map; private final Map<String, Object> map;
public RedissonStore(UUID sessionId, Redisson redisson) {
public RedissonStore(UUID sessionId, RedissonClient redisson) {
this.map = redisson.getMap(sessionId.toString()); this.map = redisson.getMap(sessionId.toString());
} }

9
src/main/java/com/corundumstudio/socketio/store/RedissonStoreFactory.java

@ -19,15 +19,16 @@ import java.util.Map;
import java.util.UUID; import java.util.UUID;
import org.redisson.Redisson; import org.redisson.Redisson;
import org.redisson.RedissonClient;
import com.corundumstudio.socketio.store.pubsub.BaseStoreFactory; import com.corundumstudio.socketio.store.pubsub.BaseStoreFactory;
import com.corundumstudio.socketio.store.pubsub.PubSubStore; import com.corundumstudio.socketio.store.pubsub.PubSubStore;
public class RedissonStoreFactory extends BaseStoreFactory { public class RedissonStoreFactory extends BaseStoreFactory {
private final Redisson redisClient;
private final Redisson redisPub;
private final Redisson redisSub;
private final RedissonClient redisClient;
private final RedissonClient redisPub;
private final RedissonClient redisSub;
private final PubSubStore pubSubStore; private final PubSubStore pubSubStore;
@ -35,7 +36,7 @@ public class RedissonStoreFactory extends BaseStoreFactory {
this(Redisson.create()); this(Redisson.create());
} }
public RedissonStoreFactory(Redisson redisson) {
public RedissonStoreFactory(RedissonClient redisson) {
this.redisClient = redisson; this.redisClient = redisson;
this.redisPub = redisson; this.redisPub = redisson;
this.redisSub = redisson; this.redisSub = redisson;

Loading…
Cancel
Save