This commit is contained in:
Redkale
2017-05-28 10:19:56 +08:00
parent 96e4b8834d
commit 6cd232efd2
14 changed files with 264 additions and 485 deletions

View File

@@ -96,18 +96,6 @@ public interface WebSocketDesc {
public void close();
//获取当前WebSocket所属的WebSocketGroup 不会为null
/* protected */ WebSocketGroup getWebSocketGroup();
//获取指定groupid的WebSocketGroup, 没有返回null
/* protected */ WebSocketGroup getWebSocketGroup(Serializable groupid);
//获取当前进程节点所有在线的WebSocketGroup
/* protected */ Collection<WebSocketGroup> getWebSocketGroups();
//获取在线用户的节点地址列表
/* protected */ Collection<InetSocketAddress> getOnlineNodes(Serializable groupid);
@@ -138,7 +126,7 @@ public interface WebSocketDesc {
default void onPong(byte[] bytes) {
}
//接收二进制消息响应事件,可能会接收到二进制消息需要重写该方法
default void onMessage(byte[] bytes) {
}

View File

@@ -59,11 +59,11 @@ public class ChatWebSocketServlet extends WebSocketServlet {
icounter.incrementAndGet();
counter.incrementAndGet();
if (debug) System.out.println("收到消息: " + message);
super.getWebSocketGroup().getWebSockets().forEach(x -> x.send(message));
super.getWebSockets().forEach(x -> x.send(message));
}
@Override
protected CompletableFuture<String> createGroupid() {
protected CompletableFuture<String> createUserid() {
return CompletableFuture.completedFuture("2");
}

View File

@@ -80,31 +80,25 @@ public class VideoWebSocketServlet extends WebSocketServlet {
}
super.send(("{'type':'user_list','users':[" + sb + "]}").replace('\'', '"'));
String msg = ("{'type':'discover_user','user':{'userid':'" + this.getSessionid() + "','username':'" + users.get(this.getSessionid()) + "'}}").replace('\'', '"');
super.getWebSocketGroup().getWebSockets().filter(x -> x != this).forEach(x -> {
x.send(msg);
});
super.broadcastMessage(msg);
}
}
@Override
public void onMessage(Object text, boolean last) {
//System.out.println("接收到消息: " + text);
super.getWebSocketGroup().getWebSockets().filter(x -> x != this).forEach(x -> {
x.send(text);
});
super.broadcastMessage(text, last);
}
@Override
public void onClose(int code, String reason) {
sessions.remove(this.getSessionid());
String msg = ("{'type':'remove_user','user':{'userid':'" + this.getSessionid() + "','username':'" + users.get(this.getSessionid()) + "'}}").replace('\'', '"');
super.getWebSocketGroup().getWebSockets().filter(x -> x != this).forEach(x -> {
x.send(msg);
});
}
super.broadcastMessage(msg);
}
@Override
protected CompletableFuture<Serializable> createGroupid() {
protected CompletableFuture<Serializable> createUserid() {
return CompletableFuture.completedFuture("2");
}
};

View File

@@ -21,7 +21,7 @@ public class ChatService implements Service {
protected final AtomicInteger idcreator = new AtomicInteger(10000);
public int createGroupid() {
public int createUserid() {
int v = idcreator.incrementAndGet();
setIdcreator(v);
return v;

View File

@@ -24,21 +24,21 @@ public class ChatWebSocket extends WebSocket<Integer, Object> {
protected ChatService service;
@Override
protected CompletableFuture<Integer> createGroupid() {
return CompletableFuture.completedFuture(service.createGroupid());
protected CompletableFuture<Integer> createUserid() {
return CompletableFuture.completedFuture(service.createUserid());
}
@RestOnMessage(name = "sendmessage")
public void onChatMessage(ChatMessage message, Map<String, String> extmap) {
message.fromuserid = getGroupid();
message.fromusername = "用户" + getGroupid();
message.fromuserid = userid();
message.fromusername = "用户" + userid();
System.out.println("获取消息: message: " + message + ", map: " + extmap);
super.broadcastEachMessage(message);
super.broadcastMessage(message);
}
@RestOnMessage(name = "joinroom")
public void onJoinRoom(int roomid) {
service.joinRoom(getGroupid(), roomid);
service.joinRoom(userid(), roomid);
System.out.println("加入房间: roomid: " + roomid);
}