From 70e82ee93af0ba4ac47dd16ea892195c996b6b62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B0=E5=B9=BF=E9=93=B6?= <273650669@qq.com> Date: Tue, 31 Oct 2017 10:25:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B6=88=E6=81=AF=E6=8F=90?= =?UTF-8?q?=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/server/mine_fill_blue.png | Bin 0 -> 7051 bytes public/js/server/index.js | 32 ++++++++++++++++++------ views/server/index.ejs | 6 +++++ 3 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 public/images/server/mine_fill_blue.png diff --git a/public/images/server/mine_fill_blue.png b/public/images/server/mine_fill_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..115619a53131afd4d1a0a96642847412bfe97fc4 GIT binary patch literal 7051 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 VDelf!kVrN%9SsBZN;Svm{{ukGWk~=4 literal 0 HcmV?d00001 diff --git a/public/js/server/index.js b/public/js/server/index.js index e2b1fb8..5977c69 100644 --- a/public/js/server/index.js +++ b/public/js/server/index.js @@ -30,7 +30,7 @@ layui.use(['layer', 'form', 'jquery'], function () { } function insert_section(uid) { - var html = ''; + var html = ''; $(".message-container").append(html); } @@ -66,9 +66,10 @@ layui.use(['layer', 'form', 'jquery'], function () { function insert_user_html(id,name) { var html = ''; $('.chat-user').append(html); } @@ -85,6 +86,15 @@ layui.use(['layer', 'form', 'jquery'], function () { } } + function msg_notification(msg) { + $(".chat-user #"+msg.uid+" .msg-tips").show(); + if(window.Notification && Notification.permission !== "denied") { + Notification.requestPermission(function(status) { + var n = new Notification('您有新的消息', { body: msg.content }); + }); + } + } + function getUsers() { $.get('/users',function (data) { if(data.code == 200){ @@ -93,9 +103,10 @@ layui.use(['layer', 'form', 'jquery'], function () { var data = data.data; data.forEach(function (user) { - insert_user_html(user.uid,user.name); + insert_user_html(user.uid,user.name + '#'+ (uuids.length + 1)); //创建聊天section insert_section(user.uid); + uuids.push(user.uid); }); if(data.length > 0 && !currentUUID){ currentUUID = data[0].uid; @@ -104,6 +115,7 @@ layui.use(['layer', 'form', 'jquery'], function () { $(".user-info").css("background","#ffffff"); $("#"+currentUUID).css("background","#f2f3f5"); $(".user-section").hide(); + msg_sender_status(true); $("#section-"+currentUUID).show(); } }); @@ -141,15 +153,16 @@ layui.use(['layer', 'form', 'jquery'], function () { socket.on('message', function(msg){ insert_client_html(msg.uid,msg.content); scrollToBottom(); + msg_notification(msg); }); //后端推送来消息时 socket.on('update-users', function(msg){ if(msg.type == 'offline'){ - $("#"+msg.uid).remove(); - arrayRemove(uuids,msg.uid); - $("#section-" + msg.uid).remove(); - $(".chat-user").find("#"+msg.uid).remove(); + //arrayRemove(uuids,msg.uid); + $(".chat-user #"+msg.uid+" .user-avatar img").attr("src","/images/server/mine_fill.png"); + //$("#section-" + msg.uid).remove(); + //$(".chat-user").find("#"+msg.uid).remove(); msg_sender_status(false); }else if(msg.type == 'online'){ if(!currentUUID){ @@ -173,6 +186,8 @@ layui.use(['layer', 'form', 'jquery'], function () { insert_section(msg.uid); } } + + $(".chat-user #"+msg.uid+" .user-avatar img").attr("src","/images/server/mine_fill_blue.png"); } }); @@ -191,6 +206,7 @@ layui.use(['layer', 'form', 'jquery'], function () { $(".user-section").hide(); $("#section-"+uid).show(); msg_sender_status(true); + $(".chat-user #"+uid+" .msg-tips").hide(); }); diff --git a/views/server/index.ejs b/views/server/index.ejs index 6e8cf6e..3a07817 100644 --- a/views/server/index.ejs +++ b/views/server/index.ejs @@ -147,6 +147,11 @@ width: 100px; } + .msg-tips{ + margin-top: 25px; + display: none; + } +
@@ -164,6 +169,7 @@
从左侧列表打开对话
+