PDA

View Full Version : مشکل مرورگر firefox



arenaw
شنبه 19 اردیبهشت 1394, 15:38 عصر
من حدود ۵ اسکریپت مجزا دارم که همشون از طریق یک اسکریپت اصلی به نام base.js اجرا میکنم. (با کمک ماژول node-import)
نکته هم اینکه این تعداد اسکریپت، همشون روی یک پورت با کلاینت در ارتباط هستن.

الان یه مشکل با مرورگر فایرفاکس دارم:


The connection to ws://192.168.3.133:1000/socket.io/?EIO=3&transport=websocket&sid=C5pwL67tVysrUM7mAAAI was interrupted while the page was loading.

که بعد از اجرای صفحه، این پیغام توی کنسول میاد و اسکریپت‌های سرور من، چهارتا در میون امیت‌هاشون به این سوکت میرسه. (همیشه ثابت نیست. بعضی وقتا کاملا درست کار میکنه و بعضی وقتا هیچ امیتی به کلاینت نمیرسه)
ولی توی مرورگرهای کروم و اپرا و حتی اینترنت اکسپلورر 9 درست کار میکنه.
پ.ن: راجع به سالم بودن و آپدیت بودن مرورگرم مطمئن هستم.


اینم کد base.js که نمیدونم ضروری باشه یا نه؟

global.http = require ( 'http' ).createServer( ).listen( 1000, function(){} );
global.io = require ( 'socket.io' ) ( http );
global.db = require( 'mysql' ).createConnection({ host: 'localhost',user: 'x',password: 'x'} ).connect( function(err){} );
global.CronJob = require('cron').CronJob;
global.fs = require('fs');
global.colors = require('colors');
global.ami = new require('asterisk-manager')( 5038,'localhost','x','x', true);
require('node-import');


db.query("SELECT * FROM `asterisk`.`modules` WHERE `enabled` = '1'",function(err,result){
if(err) console.log( err );
for( var i = 0; i < result.length; i++ )
ifExistsThenImport( '../modules/'+result[i].modulename+'/nodejs/index.js' );
});
function ifExistsThenImport(file){
fs.exists(file, function(exists) {
if (exists) {
imports(file);
console.log(file.gray, 'started!'.green.bold );
}
});
}

cups_of_java
شنبه 19 اردیبهشت 1394, 19:36 عصر
اگه کانکشن وب ساکتتون رو موقع بسته شدن صفحه نمی بندید این کار رو انجام بدید... اینجا رو بخونید. (http://stackoverflow.com/questions/14140414/websocket-interrupted-while-page-is-loading-on-firefox-for-socket-io)

arenaw
دوشنبه 21 اردیبهشت 1394, 15:23 عصر
این کار رو کردم ولی همچنان تغییری نکرده. این رو هم در نظر بگیرید که درصورتی که اون اسکریپت‌هارو تک تک اجرا میکنم، کار میکنه. توی این حالتم فقط توی فایرفاکس این اتفاق می‌افته.
این اسکریپت کلاینت من هست که بعد از سوکت.آی‌او و جی‌کوئری اینکلود میشه:

var nodeSocket = io.connect(':1000');
$(window).on('beforeunload', function(){
nodeSocket.close();
});