तो यह अजीब है, जब मैं करने की कोशिश WebSocket से कनेक्ट (यह केवल एक Microsoft बढ़त मुद्दा है) यह हर दूसरे पृष्ठ पर ऐसा करता है ताज़ा webworker
संदेशों को स्वीकार नहीं करेगा onMessage
अभ्यस्त ट्रिगर बिल्कुल:माइक्रोसॉफ्ट बढ़त में WebWorker अन-उत्तरदायी बनाने WebSocket से कनेक्ट कर
निम्नलिखित पर विचार:
main.js
var worker = new Worker("webworker.js");
worker.postMessage({ type: 'INIT_SOCKET' });
worker.addEventListener('message', (event) => {
let data = event.data;
if (typeof data === 'string') {
data = JSON.parse(data);
}
if (data.type === 'SOCKET_INITIALIZED') {
console.log('inititalized');
}
});
webworker.js
var io = require('socket.io-client');
var socket;
onmessage = function(event) {
var data = event.data;
console.log('got a event');
if (typeof data === 'string') {
data = JSON.parse(data);
}
switch (data.type) {
case 'INIT_SOCKET':
try {
socket = io('xxxx', { transports: [ 'websocket' ], secure: true }); // this line causes the error
socket.on('connect', function() {
postMessage({
type: Consts.SOCKET_INITIALIZED
});
});
} catch(e) {
console.log('some error ', e);
}
break;
};
};
क्या है 'this' भीतर' connect' ईवेंट हैंडलर की उम्मीद? – guest271314
मुझे यकीन नहीं है कि आप 'यह' कहां देखते हैं, हालांकि यदि आप आमतौर पर कनेक्शन हैंडलर के अंदर संदर्भ क्या हैं, तो हैंडलर या विंडो। मुझे यकीन नहीं है कि यह कैसे प्रासंगिक है। –
क्या 'पोस्टमेसेज' सही संदर्भ के साथ बुलाया जा रहा है? 'डेटा' की जांच के लिए उद्देश्य क्या है? क्या एक स्ट्रिंग 'जावास्क्रिप्ट' के एक हिस्से में संदेश के रूप में पास की गई है? क्या आपने 'worker.postMessage ({type: 'INIT_SOCKET'}) को कॉल करने का प्रयास किया है; 'संदेश' ईवेंट हैंडलर को जोड़ने के बाद? – guest271314