node.js - شرح - socket.io-client npm




socket.io رسالة خاصة (3)

أسهل طريقة يمكنني أن أفكر في أن يكون تجزئة جميع المستخدمين على استخدام معرفهم أو اسم كمفتاح ولها مأخذ كجزء من القيمة ثم عندما تريد إرسال رسالة إلى فقط لهم سحب هذا المقبس و تنبعث منه ... شيء من هذا القبيل:

users[toUser].emit('msg',"Hello, "+toUser+"!");

لقد بين تجوب الشبكة مع أي حظ. أحاول معرفة كيفية إرسال رسالة خاصة من مستخدم إلى آخر. هناك الكثير من المقتطفات، ولكن لست متأكدا من تفاعل العميل / الخادم. إذا كان لدي معرف المقبس أريد إرساله إلى، كيف يمكنني إرساله إلى الخادم، وكيف يمكنني التأكد من أن الخادم يرسل الرسالة فقط إلى مقبس استقبال واحد؟

هل هناك برنامج تعليمي أو تجول يعرفه أي شخص؟


إليك مقتطف الشفرة الذي يجب أن يساعدك

جانب العميل (إرسال رسالة)

   socket.emit("private", { msg: chatMsg.val(), to: selected.text() });

حيث 'إلى' يشير إلى معرف لإرسال رسالة خاصة إلى و "مسغ" هو المحتوى

جانب العميل (تلقي رسالة)

   socket.on("private", function(data) {    
   chatLog.append('<li class="private"><em><strong>'+ data.from +' -> '+ data.to +'</strong>: '+ data.msg +'</em></li>');

حيث تشاتلوغ هو ديف عرض رسائل الدردشة

جانب الخادم

   client.on("private", function(data) {        
        io.sockets.sockets[data.to].emit("private", { from: client.id, to: data.to, msg: data.msg });
   client.emit("private", { from: client.id, to: data.to, msg: data.msg });
   });

في socket.io 1.0 استخدام

io.sockets.connected[<socketid>]

يمكنك تخزين معرف المقبس فقط. مثل ذلك:

var users = {};
users[USER_NAME] = socket.id;

ثم:

io.sockets.connected[users[USER_NAME]]
   .emit('private', {
       msg:'private message for user with name '+ USER_NAME
   });






message