我正在使用node.js,我正在尝试基于蒸汽ID64进行聊天。如果用户连接到聊天,服务器将从MySQL数据库发送最后2条消息。我在网站上看到的 Onyly 东西是 2 条相同的消息。
function getSteamName(steamid, callback) {
if (typeof steamid !== 'undefined') {
var url = "steam api link, because under 10 reputation points" + steamKey + "&steamids=" + steamid;
request({
url: url,
json: true
},
function (error, response, body) {
if (!error && response.statusCode === 200) {
callback(body.response.players[0].personaname);
}
})
}
}
getSteamAvatar几乎是相同的,但其他链接到Steam API
var sql = "SELECT * FROM `chat` ORDER BY id DESC LIMIT "+count;
connection.query(sql, function(err, rows, fields) {
rows.reverse();
for (row in rows) {
console.log(row);
var msg = rows[row];
getSteamAvatar(msg.id64, function(userAvatar) {
getSteamName(msg.id64, function(userNick) {
msg["id64"] = userNick;
msg["avatar"] = userAvatar;
console.log(msg);
socket.emit('chat message', msg);
});
});
}
if (err) throw err;
});
在控制台中,我看到:
0
1
RowDataPacket {
id: 926,
id64: 'Ezi',
date: 2017-01-06T02:42:40.000Z,
message: '454656',
isDeleted: 0,
rank: 'Admin',
avatar: 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c4/c410314bfdfe4fd23bac077212ee79adb99f6848_medium.jpg' }
RowDataPacket {
id: 926,
id64: 'Ezi',
date: 2017-01-06T02:42:40.000Z,
message: '454656',
isDeleted: 0,
rank: 'Admin',
avatar: 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c4/c410314bfdfe4fd23bac077212ee79adb99f6848_medium.jpg' }
如果您想查看最新的两条消息,请维护已发送,阅读的状态字段,以便您可以轻松获取最新消息。
在您的代码中,您有控制台.log两次,因此它在消息中给出两次。请交叉检查..