-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
95 lines (74 loc) · 2.16 KB
/
app.js
File metadata and controls
95 lines (74 loc) · 2.16 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
var express = require('express'),
path = require('path'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
// Express 配置
app.configure(function(){
app.set('port', 3000);
app.set('views', __dirname + '/views');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
//连接监听
io.on('connection', function (socket) {
console.log("connected");
// 构造客户端对象
var client = {
socket:socket,
nickname:"",
}
// 对message事件的监听
socket.on('message', function(msg){
var res = {
text : "",
time : getTime()
};
// 第一次连接,触发welcome事件
if(client.nickname === ""){
client.nickname = msg;
res['text']=client.nickname;
console.log(client.nickname + ' login');
//欢迎事件反馈
socket.emit('welcome',res);
//大厅广播新用户加入
socket.broadcast.emit('welcome',res);
}else{
//如果不是第一次的连接,正常的聊天消息
res['text']=msg;
console.log(client.nickname + ' say: ' + msg);
// 返回消息
socket.emit('message',res);
// 大厅广播用户发出的消息
socket.broadcast.emit('message',res);
}
});
//监听出退事件
socket.on('disconnect', function () {
var res = {
time:getTime(),
text:client.nickname
};
// 大厅广播用户已退出
socket.broadcast.emit('disconnect',res);
console.log(client.nickname + 'Disconnect');
});
});
app.configure('development', function(){
app.use(express.errorHandler());
});
// 静态html文件
app.get('/', function(req, res){
res.sendfile('views/index.html');
});
server.listen(app.get('port'), function(){
console.log("Server is listening on port " + app.get('port'));
});
var getTime=function(){
var date = new Date();
return date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
}