This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user