Quelqu'un pourrait me dire ce qui ne va pas avec mon code? J'essaie d'envoyer un message privé d'un utilisateur à un autre en utilisant socket.io. Je pense que le problème est quelque part avec la lignesocket.io Envoyer un message à un utilisateur particulier
io.sockets.socket(targetUser).emit('private message', tstamp(), socket.nickname, linkify(msg));
Le problème est que le message ne passe pas au client, ou du moins pas s'ajouté à la div. Je ne suis pas sûr de savoir comment résoudre exactement le problème.
Le code correspondant est ci-dessous - je peux ajouter le code entier si cela ne suffit pas ..:
Merci pour l'aide. J'apprends node.js et socket.io - mais c'est lent!
sur le client (envoyer):
function startPrivateChat(targetUser, sendingUser){
if(targetUser !=sendingUser){
var privateMessage1="starting private chat with " + targetUser + ". My name is " + sendingUser;
var chatBoxId= targetUser + 'ChatBox';
$("#content").append('<div class="chatBox" id="' + chatBoxId + '">' + sendingUser + ', ' + targetUser + '</div>');
$('#' + chatBoxId).append('new private chat');
$('#' + chatBoxId).dialog();
privateMessage(tstamp(), myNick, privateMessage1);
//socket.emit('private message', targetUser, privateMessage1);
clear();
}
}
Serveur:
socket.on('private message', function(targetUser,msg) {
io.sockets.socket(targetUser).emit('private message', tstamp(), socket.nickname, linkify(msg));
updateLog('private message', socket.nickname, msg);
});
sur le client (recieve):
socket.on('private message', privateMessage);
function privateMessage (msg_time, from, msg) {
$('#chatLogDiv').append($('<p>').append($('<small>').text(msg_time)).append($('<b>').text(from), linkify(msg)));
}
Pourriez-vous ajouter le code complet, de préférence sur Pastebin – almypal
chat_server.js [link] (http: //pastebin.com/nxHdzHDg) example_chat.tpl.php [link] (http://pastebin.com/t0h7rSFv) –
Le code fonctionne correctement. Seule la modification apportée consistait à inclure la bibliothèque jquery et à exclure le code php qui appelle drupal_add_library et les méthodes drupal_add_js. – almypal