[Plugin] Socket.io Client

Hi @

Little update on my problem with UESocket.io not connecting to my server. I’m not really sure how I’ve got it set up as i’m basically fudging my server code together, but it seems that the way I was hosting my webpage may have something to do with it. I started getting connections to UE4 when I set up second socket.io ‘instance’ in my server code, listening on another port.

My original setup is a node server which acts as a CMS reading and writing to an SQLite database and serving up a webpage. I bolted on lots of other stuff like OSC and stuff - and originally I was running with XMLHTTPrequests rather than Socket.io - then I switched to socket.io for communication between the server and the served webpage-interface but when I tried to connect from UE4 through the same address and port I got nothing.

Don’t know what I did, and I don’t’ really like running 2 ports (it seems clunky) but it’s working now.

It could be that your other service is holding the other port and you can’t connect to it with another service. See http - How do multiple clients connect simultaneously to one port, say 80, on a server? - Stack Overflow, specifically:

Ports are a way to multiplex IP addresses so that different applications can listen on the same IP address/protocol pair. Unless an application defines its own higher-level protocol, there is no way to multiplex a port. If two connections using the same protocol have identical source and destination IPs and identical source and destination ports, they must be the same connection.

There are ways to forward ports however so that e.g. port 80 requests will happen on 3000 transparently to the user, which should work for socket.io traffic as well.

If this is related to the socket.io-client plugin, PM me your logs under saved related to the crash. They usually have more information. Also have you tried a clean project? What platform are you using this on?

I’m having a similar crash as SteffanN, but only in packaged builds. I’ve experienced crashes in non-packaged builds if I fail to connect. I have tried in a blank project with variable success. The frustrating thing is that is seems really inconsistent. Sometimes ti connects, sometimes it crashes. Mostly crashing these days.

Here’s an actor crashing after 5 seconds.
It does seem more stable if I connect with the PC using auto-connect or in the construction script. But that’s not a guarantee. The logs are pretty unhelpful as they simply end before the crash.

Got an example minimal project to replicate the crash?

I’ve been able to replicate hangs from not using auto-connect, but haven’t found a way to crash due to socket.io. What’s the server you’re connecting to? does it have socket.io v1.4 or newer?

Great Plugin.

Just upgraded to UE 4.15(Github Version) but the Plugin no longer works, the editor tries to compile when i start my project but it fails.

thats the error in the log

edit:

fixed it by adding
include "EdGraphUtilities.h

in the “SIOJ_BreakJson.cpp” file

Excellent, kindly make a pull request in github with the fix :slight_smile:

Just made a pull request, first time ever, i hope i did it right :slight_smile:

The problem with editor freezing, if the server goes down during session still persist, though now it only happens when you stop play/simulation. Are there, maybe any way to check server availability and disconnect after a certain number of attempts? I tried this: a50d47424375cc5478b06c4e2f6cbc71afe50fde.jpeg

but to no avail

Also, is there any way to check connection status? Especially good, if you could do it through blueprints, but ++ approach is ok. As far as I learned, issue with editor freeze goes even further. If you try to disconnect while server is sending/waiting to send you smth, it freezes too, but then, strange things happens. Server getting the dc message, but then socket reconnects again, all with editor frozen on client side. Moreover, if you try to connect to server, that ain’t there two times in a row, on second try editor freezes too.

All of the above is for 4.15

Hi @,

How is sunny Oxford?

Do you know if anyone’s been successful in creating an android build of this plugin? I’m trying to port my build to my shield tv device so I don’t have to lug my PC around. (I’m planning to possibly do a presentation at UELondon with it this month too.)

Cheers!

Dan

It looks good, merged.

There is a bIsConnected attached to the main component you can use. Still looking for some free time to fix the timeout connection issue. If you have C++ experience, consider contributing :slight_smile:

Actually sunny for once :stuck_out_tongue:

Regarding android build, I forward you to the issue on github related to it https://github.com//socketio-client-ue4/issues/21. As of right now there is no successful build for android, looking for contributors for that platform as I don’t personally use it with ue4 yet. If anyone has C++ and android experience, kindly try to build the libs!

Thanks for the reply @

I can see you’ve got some iOS bits in the GitHub. Does it work? I’m thinking of picking up an Apple TV. I really need to make a portable version of my project somehow.

Dan

Same situation as android, this is the issue tracking that platform: https://github.com//socketio-client-ue4/issues/19. What’s missing in both cases is to have the static libs for socket.io-cpp and boost built and correctly embedded in the project. It will require other contributors as I don’t work on these platforms myself. I hope any of you C++ experts with iOS and Android experience consider contributing :slight_smile:

I have a 4.14 project using the Socket IO plugin, trying to upgrade it to 4.15 for SLI support, was using the latest 4.14 release of Socket IO Unreal plugin but have now switched to the master for the 4.15 fix, however when i try to open the project in 4.15 using the master branch version of the plugin i get the following error;

Plugin ‘SocketIOClient’ failed to load because module @SIOJson’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.

Have tried to rebuild the plugin using the package button in the plugins window but it errors out, even with a black project.

Anyone have any tips on how they got it to work or what i am doing wrong?

Thank in advance,
Nader

I havent provided 4.15 binary release yet for the plugin, but you do have full source so you can recompile it. What you need to do is add a C++ class to your project (https://docs.unrealengine.com/latest/INT/Programming/QuickStart/2/index.html) and recompile it. When you do this, the plugin will be compiled along with the project and it will launch.

Thank you so much for your reply, i will have a go at this today, its not something i have done before, but you make it sounds easy enough. :slight_smile:

Thanks,
Nader

Just released a new 4.15 binary build, but I’d recommend trying the build yourself once to see that it’s not that bad overall :slight_smile:

Update to 0.4.8
-Includes changes from 0.4.2 to 0.4.8
-UTF8 support
-4.15 compile fixes (thanks @KenshiHH)
-Session ID fixes
-Connection fixes

grab latest release at the usual https://github.com//socketio-client-ue4/releases

If you’ve had disconnection hangs, try the new version and let me know if it fixes things for you.

Thanks for the update, I’ll let you know if it hangs. I get a crash more often than not on my packaged build so I should be in a good position to let you know.

Cheers!

Still getting crash on exit for packaged games. I’ll try to put together something you can look at.

Thanks though!

Don’t know if this helps - I rigged it so I can toggle a connect/disconnect and it crashed (in editor)

Fatal error: [File:D:\Build++UE4+Release-4.15+Compile\Sync\Engine\Source\Runtime\Core\Private\GenericPlatform\GenericPlatformMemory.cpp] [Line: 160]
Ran out of memory allocating 4453159313439771895 bytes with alignment 0

KERNELBASE
UE4Editor_Core
UE4Editor_Core
UE4Editor_Core
UE4Editor_Core
UE4Editor_Core
UE4Editor_SocketIOClient!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy() [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:2196]
UE4Editor_SocketIOClient!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign() [c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstring:1155]
UE4Editor_SocketIOClient!sio::client_impl::connect()
UE4Editor_SocketIOClient!sio::client::connect()
UE4Editor_SocketIOClient!<lambda_528b49ce01ebae6e90043a74545a1705>::operator()() [c:\users\danrs\documents\unreal projects\damab_6_0\plugins\socketio-client-ue4\source\socketioclient\private\socketioclientcomponent.cpp:150]
UE4Editor_SocketIOClient!FSIOLambdaRunnable::Run() [c:\users\danrs\documents\unreal projects\damab_6_0\plugins\socketio-client-ue4\source\socketioclient\private\siolambdarunnable.cpp:47]