This commit is contained in:
Redkale
2018-09-11 11:12:43 +08:00
parent 1ac5f060a4
commit 4545d81e50
2 changed files with 11 additions and 12 deletions

View File

@@ -8,6 +8,8 @@ package org.redkale.test.ws;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.Resource;
import org.redkale.net.http.WebSocketNode;
import org.redkale.service.*;
import org.redkale.util.Comment;
@@ -25,6 +27,9 @@ public class ChatService implements Service {
protected final AtomicInteger idcreator = new AtomicInteger(10000);
@Resource(name = "chat")
protected WebSocketNode wsnode;
@Comment("创建一个用户ID")
public int createUserid() {
return idcreator.incrementAndGet();
@@ -34,6 +39,11 @@ public class ChatService implements Service {
public boolean joinRoom(int userid, int roomid) {
userToRooms.put(userid, roomid);
roomToUsers.computeIfAbsent(roomid, (id) -> new CopyOnWriteArrayList()).add(userid);
System.out.println("加入房间: roomid: " + roomid);
return true;
}
public void chatMessage(ChatMessage message) {
wsnode.broadcastMessage(message);
}
}

View File

@@ -5,7 +5,6 @@
*/
package org.redkale.test.ws;
import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import javax.annotation.Resource;
@@ -72,7 +71,7 @@ public class ChatWebSocket extends WebSocket<Integer, Object> {
message.fromuserid = getUserid();
message.fromusername = "用户" + getUserid();
System.out.println("获取消息: message: " + message + ", map: " + extmap);
super.broadcastMessage(message);
service.chatMessage(message);
}
/**
@@ -90,16 +89,6 @@ public class ChatWebSocket extends WebSocket<Integer, Object> {
@RestOnMessage(name = "joinroom")
public void onJoinRoom(int roomid) {
service.joinRoom(getUserid(), roomid);
System.out.println("加入房间: roomid: " + roomid);
}
public static void main(String[] args) throws Throwable {
Method method = Arrays.asList(Rest.class.getDeclaredMethods())
.stream().filter(m -> "createRestWebSocketServlet".equals(m.getName()))
.findFirst().get();
method.setAccessible(true);
System.out.println(method.invoke(null, Thread.currentThread().getContextClassLoader(), ChatWebSocket.class));
}
}