This commit is contained in:
@@ -8,6 +8,8 @@ package org.redkale.test.ws;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.redkale.net.http.WebSocketNode;
|
||||||
import org.redkale.service.*;
|
import org.redkale.service.*;
|
||||||
import org.redkale.util.Comment;
|
import org.redkale.util.Comment;
|
||||||
|
|
||||||
@@ -25,6 +27,9 @@ public class ChatService implements Service {
|
|||||||
|
|
||||||
protected final AtomicInteger idcreator = new AtomicInteger(10000);
|
protected final AtomicInteger idcreator = new AtomicInteger(10000);
|
||||||
|
|
||||||
|
@Resource(name = "chat")
|
||||||
|
protected WebSocketNode wsnode;
|
||||||
|
|
||||||
@Comment("创建一个用户ID")
|
@Comment("创建一个用户ID")
|
||||||
public int createUserid() {
|
public int createUserid() {
|
||||||
return idcreator.incrementAndGet();
|
return idcreator.incrementAndGet();
|
||||||
@@ -34,6 +39,11 @@ public class ChatService implements Service {
|
|||||||
public boolean joinRoom(int userid, int roomid) {
|
public boolean joinRoom(int userid, int roomid) {
|
||||||
userToRooms.put(userid, roomid);
|
userToRooms.put(userid, roomid);
|
||||||
roomToUsers.computeIfAbsent(roomid, (id) -> new CopyOnWriteArrayList()).add(userid);
|
roomToUsers.computeIfAbsent(roomid, (id) -> new CopyOnWriteArrayList()).add(userid);
|
||||||
|
System.out.println("加入房间: roomid: " + roomid);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void chatMessage(ChatMessage message) {
|
||||||
|
wsnode.broadcastMessage(message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.redkale.test.ws;
|
package org.redkale.test.ws;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -72,7 +71,7 @@ public class ChatWebSocket extends WebSocket<Integer, Object> {
|
|||||||
message.fromuserid = getUserid();
|
message.fromuserid = getUserid();
|
||||||
message.fromusername = "用户" + getUserid();
|
message.fromusername = "用户" + getUserid();
|
||||||
System.out.println("获取消息: message: " + message + ", map: " + extmap);
|
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")
|
@RestOnMessage(name = "joinroom")
|
||||||
public void onJoinRoom(int roomid) {
|
public void onJoinRoom(int roomid) {
|
||||||
service.joinRoom(getUserid(), 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