2012-06-24 3 views
12

आमतौर पर हम केवल उस डेटा को डालते हैं जिसे हम websocket.send() विधि के पैरामीटर के रूप में भेजना चाहते हैं, लेकिन मैं जानना चाहता हूं कि आईपी जैसे अन्य पैरामीटर हैं जिन्हें हम ब्रैकेट के अंदर रख सकते हैं। क्या हम इसे इस तरह उपयोग कर सकते हैं:websocket.send() पैरामीटर

websocket.send(ip,data); // send data to this ip address 

या मुझे अन्य तरीकों को कॉल करना चाहिए?

+4

क्योंकि आप का उपयोग कर एक कनेक्शन सेट करना आवश्यक है तुम बस एक पते पारित नहीं हो सकता 'websocket = नई वेबसाकेट (पता) 'पहली जगह में। '.send' के लिए केवल [एक तर्क] (http://dev.w3.org/html5/websockets/#dom-websocket-send) है। – pimvdb

+0

मैंने पहले ही कनेक्शन स्थापित किया है। तो अगर मैं किसी विशिष्ट आईपी पते पर डेटा भेजना चाहता हूं तो मुझे क्या करना चाहिए? फिर – Amy

+0

यदि मैं एक websockerserver बना देता हूं, तो क्या यह सर्वर विशिष्ट आईपी पते पर डेटा भेज सकता है, और मुझे किस विधि को कॉल करना चाहिए? – Amy

उत्तर

26

जैसा कि मैं इसे समझता हूं, आप चाहते हैं कि सर्वर क्लाइंट 1 से क्लाइंट 2 के माध्यम से संदेश भेज सके। आप सीधे दो क्लाइंट कनेक्ट नहीं कर सकते क्योंकि वेबसॉकेट कनेक्शन के दो सिरों में से एक सर्वर होना आवश्यक है।

यह कुछ pseudocodish जावास्क्रिप्ट है:

ग्राहक:

var websocket = new WebSocket("server address"); 

websocket.onmessage = function(str) { 
    console.log("Someone sent: ", str); 
}; 

// Tell the server this is client 1 (swap for client 2 of course) 
websocket.send(JSON.stringify({ 
    id: "client1" 
})); 

// Tell the server we want to send something to the other client 
websocket.send(JSON.stringify({ 
    to: "client2", 
    data: "foo" 
})); 

सर्वर:

var clients = {}; 

server.on("data", function(client, str) { 
    var obj = JSON.parse(str); 

    if("id" in obj) { 
    // New client, add it to the id/client object 
    clients[obj.id] = client; 
    } else { 
    // Send data to the client requested 
    clients[obj.to].send(obj.data); 
    } 
}); 
+0

var obj = JSON.parse (str); यह लाइन एक "अपरिभाषित" त्रुटि लौटाएगी, क्या आपको पता है क्यों? मैं क्रोम 20 बीटा – Amy

+1

@ एमी का उपयोग कर रहा हूं: यह छद्म कोड था; 'str' को क्लाइंट से प्राप्त डेटा का संदर्भ लेना चाहिए। मुझे नहीं पता कि आप किस लाइब्रेरी का उपयोग कर रहे हैं, इसलिए आपको डेटा को प्राप्त करने के तरीके के बारे में यह देखने के लिए आपको इसके दस्तावेज का संदर्भ लेना होगा। – pimvdb

+0

क्लाइंट कोड में मुझे लगता है कि आपको भेजने से पहले ऑनपेन कॉलबैक का इंतजार करना चाहिए। –