2011-09-20 19 views
7

के साथ सभी ब्राउज़रों को संदेश भेजना मैं socket.io और node.js के साथ गड़बड़ कर रहा हूं, और यह सोच रहा था कि निम्न को कैसे पूरा किया जाए: मेरे पास एक साधारण रूप है जो सर्वर पर टेक्स्ट स्ट्रिंग भेजता है, और सर्वर इसे वापस भेजता है, और यह एक div में जोड़ा जाता है। मैं क्या करना चाहता हूं कि सभी ब्राउज़रों में सभी उपयोगकर्ताओं के लिए div अद्यतन है, वर्तमान में यह केवल उस संदेश को अपडेट करता है जिसे संदेश भेजा गया था। app.js सेसॉकेट io

कोड (Node.js सर्वर):

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> 
    <script src="/socket.io/socket.io.js"></script> 
    <script> 
    $(document).ready(function() { 
    var socket = io.connect('http://localhost:3000'); 

    $('#sender').live('click',function() { 
      var user_message = $('#message_box').val() 
      socket.emit('send_message',{message: user_message}); 
    }); 

    socket.on('get_message', function(data) { 
     $('#data').append(data.message); 
     }); 
    }); 
</script> 

और html: क्लाइंट-साइड पर

io.sockets.on('connection', function(socket) { 
    socket.on('send_message', function(data) { 
    data.message = data.message + ' yo<br/>'; 
    socket.emit('get_message',data); 
    }); 
}); 

कोड

<div id='data'></div> 
<input type='text' id='message_box' placeholder='send message'> 
<button id='sender'>Send Message</button> 

मैं क्या करना चाहिए कई ब्राउज़रों को संदेश भेजने के लिए क्या कर रहे हैं?

उत्तर

23

बदलें

socket.emit('get_message',data); 

socket.broadcast.emit('get_message',data); 

करने के लिए यह सब जुड़े उपयोगकर्ताओं के लिए प्रसारित करने के लिए, सॉकेट जहां प्रसारण पर बुला रहे हैं को छोड़कर।

आप कर सकते हैं तो आप उस सॉकेट शामिल करना चाहते हैं

io.sockets.emit('get_message', data); 
संबंधित मुद्दे