我正在构建一个聊天程序。
每次用户发送消息时,它都会存储在名为“消息”的表中。该表如下所示:
当用户断开连接并稍后再次连接时,旧消息应以与发送时相同的方式显示。 在图像中,您可以看到收到的消息是灰色的,其他消息是蓝色的:
当用户连接时,我将使用以下代码检索旧消息:
// Retrieve conversation
client.on("retrieveConversation", function(data){
var peopleName = data.result.conversation_receiver;
var retrievedMessages = [];
connection.query("SELECT * FROM `messages` WHERE `message_key` = '" + data.result.conversation_key + "'", function(error, results, fields){
if (error) {
console.log(error);
return;
}
else if (results) {
console.log("Messages: ", results);
}
});
console.log("Retrieving conversation", peopleName);
client.emit("addConversationForSelf", peopleName);
});
如何循环遍历结果并控制哪些消息(来自正文)应发送到: 1.client.emit("newMessageToOthers", message);
或 2.client .emit("ownMessage", message);
- 请注意,这两个选项控制消息是灰色还是蓝色。
最佳答案
类似这样的事情
var results = [{body: 'Hi', userfrom_id: 'abc'}, {body: 'Hi', userfrom_id: 'xyz'}, {body: 'Hi', userfrom_id: 'abc'}]; //this is your result from database
var currUser_id = 'abc'; //this is current user
//loop
results.forEach(function(packet){if(packet.userfrom_id == currUser_id){console.log('my packet');}else{console.log('other user packet')}});
关于javascript - 如何循环遍历mysql数据库中的消息并正确显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43894986/