-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsocketserver.js
64 lines (63 loc) · 1.82 KB
/
socketserver.js
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
/**
* Created by 95 on 2016/12/10.
*/
var socketIO=require('socket.io');
module.exports=function(httpServer){
var arr=[];
var socketserver=socketIO.listen(httpServer);
socketserver.on("connect",function(socket){
console.log("正在连接的用户ID"+socket.id);
socket.on("message",function(data){
var type=data.type;
switch (type){
case "101":
handleUserLogin(socket,data);
break;
case "201":
handleChatMsg(socket,data);
break;
}
});
socket.on("disconnect",function(){
arr.pop([socket.nickname,socket.sex,socket.img]);
var msg={
type:"102",
nickname:socket.nickname,
arr:arr
};
socket.broadcast.send(msg);
});
});
function handleUserLogin(socket,data){
socket.sex=data.sex;
socket.img=data.img;
socket.nickname=data.nickname;
arr.push([data.nickname,data.sex,data.img]);
var connect={
type:"101",
nickname:socket.nickname,
sex:socket.sex,
img:socket.img,
arr:arr
};
socket.broadcast.send(connect);
connect.type="100";
socket.send(connect);
}
function handleChatMsg(socket,data){
var date=new Date();
socket.chatmsg=data.chatmsg;
socket.nickname=data.nickname;
socket.img=data.img;
var message={
type:"201",
chatmsg:socket.chatmsg,
img:socket.img,
nickname:socket.nickname,
date:date.toLocaleString()
};
socket.broadcast.send(message);
message.type="200";
socket.send(message);
}
};