मैं केवल लैन के लिए उपयोग किए गए क्रोम पैक किए गए ऐप को बनाना चाहता हूं, जहां एक उदाहरण सर्वर (सत्र होस्ट) के रूप में कार्य करता है और अन्य उदाहरणों को सर्वर को खोजना और सत्र में शामिल होना चाहिए। क्या यह chrome.socket के साथ हासिल किया जा सकता है?प्रसारण या मल्टीकास्टिंग के लिए chrome.socket का उपयोग कैसे किया जा सकता है?
मैं इस तरह सर्वर की स्थापना की है:
var socket = chrome.socket || chrome.experimental.socket;
socket.create('udp', {}, function(createInfo) {
var publish_socket = createInfo.socketId;
socket.bind(publish_socket, '225.0.0.42', 42424, function (result) {
if (result < 0) console.error(result); // this works fine
socket.recvFrom(publish_socket, null, function(recvFromInfo) {
console.log(recvFromInfo); // UNABLE TO MAKE THIS HAPPEN
});
});
// Chrome won't let me listen for app window closing
var cleanup_timer;
cleanup_timer = setInterval(function(){
if (requesting_window.closed) {
socket.destroy(publish_socket);
clearInterval(cleanup_timer);
}
},
5000
);
});
सॉकेट बाध्य है, मैं ss -ua
में देख सकते हैं:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 225.0.0.42:42424 *:*
लेकिन सर्वर कभी नहीं कोई डेटा प्राप्त करने लगता है। मुझे कोई सफलता के साथ chrome.socket एपीआई कुछ डेटा nc -uv 225.0.0.42 42424
का उपयोग करने और लेकिन भेजने की कोशिश की है:
socket.create('udp', {}, function(socketInfo) {
var socketId = socketInfo.socketId;
socket.sendTo(socketId, str2ab("discovering"), '225.0.0.42', 42424, function(writeInfo) {
if (writeInfo.bytesWritten < 0) console.error(writeInfo);
});
});
यह ग्राहक के पक्ष और सर्वर साइड पर कुछ भी नहीं है पर त्रुटि कोड -15
का परिणाम है।
मुझे संदेह है कि कहीं मल्टीकास्ट ध्वज सेट होना चाहिए लेकिन मुझे यह नहीं मिला।
मैं क्रोम संस्करण 23.0.1246.0 देव का उपयोग कर रहा
[शायद यह लिंक आपकी मदद करेगा] (https://github.com/KensakuKOMATSU/chrome-upnp)। –
@Cicada लिंक के लिए धन्यवाद। मैंने 'sendtoo' लाइन से पहले 'socket.bind (सॉकेटआईडी," 0.0.0.0 ", 0, फ़ंक्शन (res) {...}) जोड़ा और डेटा भेजते समय शिकायत करना बंद कर दिया। दुर्भाग्यवश मुझे अभी भी नहीं पता कि ** मल्टीकास्ट पैकेट्स को ** कैसे सुनें। – hlidka