This commit is contained in:
@@ -7,7 +7,9 @@ package org.redkale.test.ws;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import org.redkale.service.Service;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import org.redkale.service.*;
|
||||||
|
import org.redkale.util.Comment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@@ -17,6 +19,20 @@ public class ChatService implements Service {
|
|||||||
|
|
||||||
private final Map<Integer, Integer> rooms = new ConcurrentHashMap<>();
|
private final Map<Integer, Integer> rooms = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
protected final AtomicInteger idcreator = new AtomicInteger(10000);
|
||||||
|
|
||||||
|
public int createGroupid() {
|
||||||
|
int v = idcreator.incrementAndGet();
|
||||||
|
setIdcreator(v);
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Comment("同步到其他服务的idcreator")
|
||||||
|
@RpcMultiRun
|
||||||
|
public void setIdcreator(int v) {
|
||||||
|
idcreator.set(v);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean joinRoom(int userid, int roomid) {
|
public boolean joinRoom(int userid, int roomid) {
|
||||||
rooms.put(userid, roomid);
|
rooms.put(userid, roomid);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -25,13 +25,15 @@ public class ChatWebSocket extends WebSocket<Integer, Object> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected CompletableFuture<Integer> createGroupid() {
|
protected CompletableFuture<Integer> createGroupid() {
|
||||||
return CompletableFuture.completedFuture(idcreator.incrementAndGet());
|
return CompletableFuture.completedFuture(service.createGroupid());
|
||||||
}
|
}
|
||||||
|
|
||||||
@RestOnMessage(name = "sendmessage")
|
@RestOnMessage(name = "sendmessage")
|
||||||
public void onChatMessage(ChatMessage message, Map<String, String> extmap) {
|
public void onChatMessage(ChatMessage message, Map<String, String> extmap) {
|
||||||
System.out.println("获取消息: message: " + message + ", map: " + extmap);
|
message.fromuserid = getGroupid();
|
||||||
super.broadcastEachMessage(message); //给所有人广播
|
message.fromusername = "用户" + getGroupid();
|
||||||
|
System.out.println("获取消息: message: " + message + ", map: " + extmap);
|
||||||
|
super.broadcastEachMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RestOnMessage(name = "joinroom")
|
@RestOnMessage(name = "joinroom")
|
||||||
@@ -39,4 +41,5 @@ public class ChatWebSocket extends WebSocket<Integer, Object> {
|
|||||||
service.joinRoom(getGroupid(), roomid);
|
service.joinRoom(getGroupid(), roomid);
|
||||||
System.out.println("加入房间: roomid: " + roomid);
|
System.out.println("加入房间: roomid: " + roomid);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user