Socket.io is not working on Android on device

Socket works perfectly in emulator but not in Android device.
I’m using Windows 10 x64 and Fuse v 0.36.

Unfortunately it’s impossible to assist you without any information at all about what fails and how. Please provide a more detailed error report, including any relevant logs and screenshots that can help out.

There is no error or logs ,this code works only in emulator .

var io=require('libs/socket.io-1.4.5.js');
// this line connect socket to server it is not executing on Android devices
var socket=io('URL of node.js Server');

I d’ont have a mac i’m using widows 10 x64 but when i tested my code with a mac on an Iphone the socket connect to server and there is no problem .

You say it’s not executing, what do you mean about that? Does that function call hang. Could you try to wrap it in a try catch to get an error?

There is no error or exception to catch, i also replaced socket.io lib with the newest version, always the same problem socket works only on emulator.

ps:my nodejs server is hosted, so there is no problem of connection between device and server and when i tested my code with an iphone it works.
The problem persists only on Android devices.

This warning appear in loop when i preview in Android.

LOG: Warning: Timer.delete(): The parameter is not a valid timer handle in Fuse.Reactive.FuseJS.TimerModule<C:\Users\Mehdi\AppData\Local\Fusetools\Packages\Fuse.Reactive.JavaScript\0.47.7\fusejs\$.uno:829>

Could you send us your project so we can take a look? You can upload here https://www.dropbox.com/request/ZgndLtJQm5eGzG9cicGK

Thank you a lot, i have found a solution while trying to make a new sample project.
Server side version must be upgraded (i used “socket.io”: “^1.7.2”).
This param { "forceBase64" : 1} is required for Android devices.

var io=require('libs/socket.io-1.4.5.js');
var socket =io.connect('url', { "forceBase64" : 1 });
//or with query 
var socket=io.connect('url', { "forceBase64" : 1 ,query: 'id='+json.user._id } );

Hi Mehdi,

I am looking for a socket.io implementation into Fuse app. I have things working with Cordova, but not In Fuse.
I am facing same Timer.delete() errors. Fuse v1.2 and latest socket.io 2.0.x.
I can run the app in emulator, but preview on the phone is crashing. Base64 did not help. I did not install apk on my device.

Any clue how to solve this? Function Delete needs some args for execution (i think) but does not get it or takes too long to execute.

 object Delete(Fuse.Scripting.Context context, object[] args)
		{
			if (args.Length > 1)
				throw new Error("delete(): requires one argument");

			try
			{
				var handle = Marshal.ToInt(args[0]);
				_tm.DeleteTimer(handle);
			}
			catch (MarshalException me)
			{
				Fuse.Diagnostics.UserWarning("Timer.delete(): NEW ERROR TEXT HERE / TEST", this);
			}

			//return null;
			return 8000;
		}

I have changed the error text and return value. I does not make any change. I am still getting old error (Text).

Any ideas? Thanks

i have the same error. If someone know how to fix this, please inform me also. thank you.
this is my forum post…https://www.fusetools.com/community/forums/howto_discussions/how_to_use_socket_io_with_fusetools