我正在编写一个简单的消息传递应用程序,我的大部分都在工作。我目前正在尝试检索保存到我的数据库中的旧邮件,并将其显示在我的应用程序中。
server.js
io.sockets.on('connection', function(socket) {
Chat.find({}, function(err, docs) {
if(err) throw err;
console.log('sending previous messages');
socket.emit("load old messages", docs);
});
socket.on('new user', function(data, callback){
if (data in users){
callback(false);
} else{
callback(true);
socket.nickname = data;
users[socket.nickname] = socket;
updateNicknames();
}
});
的messaging.html 只是javascript
<script>
jQuery(function($){
var socket = io.connect();
var $nickForm = $('#setNick');
var $nickError = $('#nickError');
var $nickBox = $('#nickname');
var $users = $('#users');
var $messageForm = $('#send-message');
var $messageBox = $('#message');
var $chat = $('#chat');
$nickForm.submit(function(e){
e.preventDefault();
socket.emit('new user', $nickBox.val(), function(data){
if(data){
$('#nickWrap').hide();
$('#contentWrap').show();
} else{
$nickError.html('That username is already taken! Try again.');
}
});
$nickBox.val('');
});
socket.on('usernames', function(data){
var html = '';
for(var i=0; i < data.length; i++){
html += data[i] + '<br/>'
}
$users.html(html);
});
$messageForm.submit(function(e){
e.preventDefault();
socket.emit('send message', $messageBox.val(), function(data){
$chat.append('<span class="error">' + data + "</span><br/>");
});
$messageBox.val('');
});
socket.on('load old msgs', function(docs) {
for (var i=0; i < docs.length; i++) {
displayMsg(docs[i]);
}
});
socket.on('new message', function(data){
displayMsg(data);
});
function displayMsg (data) {
$chat.append('<span class="msg"><b>' + data.nick + ': </b>' + data.msg + "</span><br/>");
}
socket.on('whisper', function(data){
$chat.append('<span class="whisper"><b>' + data.nick + ': </b>' + data.msg + "</span><br/>");
});
});
</script>
这行代码应该从服务器检索并显示旧消息,但它不起作用:
socket.on('load old msgs', function(docs) {
for (var i=0; i < docs.length; i++) {
displayMsg(docs[i]);
}
});
这是代码中给我带来麻烦的部分,因为我正在获取名为Chat并尝试发送给我的用户端的API。但是,在我的控制台日志中,从服务器端代码,它确实说发送旧消息,所以我猜它工作正常,即使不确定。这给我带来了很长时间的麻烦,我需要帮助。
答案 0 :(得分:1)
I think you have a mismatch on events here:
plt.show()
It should be:
line_ani.save("animation.mp4")