节点js实时聊天读取或不读取状态

其实我必须在与socket.io简单节点聊天中实现读取和不读取状态。

我已经在node和socket.io帮助下构build了实时聊天应用程序。 但现在我想要的是当user1发送消息给另一个用户2user1具有状态,如果user2读取或不读取消息,这是发送给另一个用户像whatsup现在做的。

关于这个状态的任何想法。

我得到一个绘制和发送应用程序使用Nodejs和Socket.io,这是我的应用程序的存储库: https : //github.com/mg52/DrawChat 。 应用程序已经发送/发送(它的工作原理类似于读/不读)状态。 在我的应用程序中,每个用户都有唯一的ID。 这个发送/发送状态取决于这些唯一的ID。

例如,

在index.html中:

当你点击发送button时,

 message_sent.innerHTML = "Message Send Status: Sending..." socket.on("get_message", function (data) { //getting message from sender (from index.js) socket.emit("message_sent",{sentuserid:data.userid}); }); 

在index.js中:

 socket.on("message_sent", function(data){ io.sockets.emit("message_sent_correctly",{msc:data.sentuserid}); //it sends back to all users (includes sender) the sender's id }); 

在index.html中:

 socket.on("message_sent_correctly",function(data){ socket.emit("check_id", {ci: data.msc}); //sends back to server to control who has sent the message }); 

在index.js中:

 socket.on("check_id",function(data){ if(data.ci === user.uid){ socket.emit("id_checked"); } //if id equals to sender's id returns to index.html that the message has been sent successfully }); 

在index.html中:

 socket.on("id_checked",function(){ message_sent.innerHTML = "Your message has been read!"; }); 

我知道这个代码可能不是读取/不读取状态的最短途径。 但它是完美的。