forked from fanpan26/LayIM_JavaClient-Deprecated
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLayIMServer.java
More file actions
69 lines (54 loc) · 1.83 KB
/
LayIMServer.java
File metadata and controls
69 lines (54 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package socket;
import pojo.SocketUser;
import pojo.message.ToServerTextMessage;
import socket.sender.MessageSender;
import socket.manager.OnLineUserManager;
import util.LayIMFactory;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
/**
* Created by pz on 16/11/23.
*/
@ServerEndpoint("/websocket/{uid}")
public class LayIMServer {
@OnOpen
public void open(Session session, @PathParam("uid") int uid){
SocketUser user = new SocketUser();
user.setSession(session);
user.setUserId(uid);
//保存在线列表
LayIMFactory.createManager().addUser(user);
print("当前在线用户:"+LayIMFactory.createManager().getOnlineCount());
print("缓存中的用户个数:"+new OnLineUserManager().getOnLineUsers().size());
}
@OnMessage
public void receiveMessage(String message,Session session){
//try {
ToServerTextMessage toServerTextMessage =
LayIMFactory.createSerializer().toObject(message,ToServerTextMessage.class);
//得到接收的对象
MessageSender sender = new MessageSender();
sender.sendMessage(toServerTextMessage);
//}catch (Exception e){
// e.printStackTrace();
//}
}
@OnError
public void error(Throwable t) {
print(t.getMessage());
}
@OnClose
public void close(Session session){
SocketUser user = new SocketUser();
user.setSession(session);
user.setUserId(0);
print("用户掉线");
//移除该用户
LayIMFactory.createManager().removeUser(user);
//print("当前在线用户:"+LayIMFactory.createManager().getOnlineCount());
}
private void print(String msg){
System.out.println(msg);
}
}