Слияние кода завершено, страница обновится автоматически
var app=require('express')();
var http=require('http').Server(app);
var io=require('socket.io')(http);
app.get('/',function(req,res){
res.sendFile(__dirname+'/index.html');
});
app.get('/js/main.js',function(req,res){
res.sendFile(__dirname+'/main.js');
});
app.get('/css/main.css',function(req,res){
res.sendFile(__dirname+'/main.css');
});
app.get('/favicon.ico',function(req,res){
res.sendFile(__dirname+'/favicon.ico');
});
app.get('/readme.html',function(req,res){
res.sendFile(__dirname+'/readme.html');
});
http.listen(80,function(){
//console.log('oimasterchat is listening on *:80');
});
var utot=0;
var lasttime=0;
var timetmp;
//https://www.cnblogs.com/zjhblogs/p/11174521.html
Date.prototype.Format = function (fmt) {
var o = {
'M+': this.getMonth() + 1,
'd+': this.getDate(),
'H+': this.getHours(),
'm+': this.getMinutes(),
's+': this.getSeconds(),
'S+': this.getMilliseconds()
};
//因为date.getFullYear()出来的结果是number类型的,所以为了让结果变成字符串型,下面有两种方法:
if (/(y+)/.test(fmt)) {
//第一种:利用字符串连接符“+”给date.getFullYear()+'',加一个空字符串便可以将number类型转换成字符串。
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp('(' + k + ')').test(fmt)) {
//第二种:使用String()类型进行强制数据类型转换String(date.getFullYear()),这种更容易理解。
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(String(o[k]).length)));
}
}
return fmt;
};
//---
io.on('connection', function(socket){
socket.on('chat message',function(msg){
timetmp=new Date();
if(timetmp.getTime()-lasttime>=60000){
var s=timetmp.Format('yyyy-MM-dd HH:mm:ss');
io.emit('system message',s);
//console.log(s);
}
lasttime=timetmp.getTime();
//console.log(msg);
io.emit('chat message',msg);
});
socket.on('disconnect', function(){
--utot;
//console.log("一人离开了 OI-MasterChat,聊天室里还剩 "+utot+' 人。');
if(utot==0){
lasttime=0;
//console.log("用户全部离开,清空时间。");
}
else
io.emit('system message',"一人离开了 OI-MasterChat,聊天室里还剩 "+utot+' 人。');
});
timetmp=new Date();
if(timetmp.getTime()-lasttime>=60000){
var s=timetmp.Format('yyyy-MM-dd HH:mm:ss');
io.emit('system message',s);
//console.log(s);
}
lasttime=timetmp.getTime();
++utot;
io.emit('system message','一人加入了 OI-MasterChat,现在聊天室里有 '+utot+' 人。');
//console.log('一人加入了 OI-MasterChat,现在聊天室里有 '+utot+' 人。');
});
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )