USocketNet

The software is an easy to use Real-time Polling or WebSocket transport connection server and client for Unity as well as browser games. We will soon fully support WebGL connection using polling as a transport layer, so stay tuned for more updates. We invite you to make an account and subscribed when browser asked you to receive updates so that we can further notify you of our ongoing development. It is a multi-platform that can be used through mobiles, consoles, browsers, or any devices that has an access to the internet.

It has a built-in database which is protected from any data manipulation and is optional to use, you can choose from the native database of USocketNet or through our other project using MySQL with WebAdmin called DataVice. Lower Ping, automatic backup database, reconnect callback, MMO capabilities, multi-platform, and many more. Real-time websocket server for your games or any chat applications.

Aside from having this USocketNet all in one package. Yes! it includes the server side backend of the web socket connection, web administration UI for easy health checks of our machines running the instance of USocketNet and also the instance statistics, and last but not the least, user management and many more like your own IN-APP PURCHASE server with credit card or PayPal as your payment gateway.

USocketNet enables real-time bidirectional event-based communication. Multiple clients and instance for each machine are also supported which can be used for RTS game. Reconnect event handler, easily restore user profile upon disconnection and many other features fully implemented and features to come which is either requested by the community or tested along the development. Lets move on to the summary of this whole project before we introduced you part by part or features by features:

USocketNet enables real-time bidirectional event-based communication. 

– Realtime WebSocket connection using the stable and reliable socket.io-engine.
– Host your own server anywhere, it can be any VPS, CLOUD, or NodeJS hosting.
– Cross-Platform with Unity, if unity supports it, we will also support it.
– Yes! We support WebGL build even if threading is not allowed on the browser.
– Reconnect event handling which automatically resyncs client to the server.
– Real-time dedicated WebAdmin page for all server instance lost of info.
– Stable (socket.io), Flexible (NodeJS) and Scalable (PM2).
– Matchmaking mechanism for auto, create, join and lots of options.
– Dedicate and easy to use, the human messaging mechanism for private and public.
– Lots of features to announce! Stay tuned for more updates.
– Creating a new app id on the backend will open a gate for clients to join.

Current Released

  • Server Version: 0.9.6
  • Client Version: 0.9.1

ASSETS LINK: https://www.bytes-crafter.com/assets/plugin/usocketnet-self-hosted-realtime-multiplayer-server/

 

Note: You can always message us for any request on our contact page making the subject of the message as ‘USocketNet’. For more inqueries, just email or fill up the contact form. We’re always hospitable on all of our member’s emails and messages.

Reliability Supports

As this software completely on the previously enumerated dependencies, specially Socket.IO which also relies on its carefully and specially developed for this purpose, Engine.IO. The process first establishes a long-polling connection, then tries to upgrade to better transports that are “tested” on the side, like WebSocket. Connections can be established in the presence of:

  • Proxies and load balance’s with Nginx Server.
  • Personal firewall and antivirus software by NodeJS.
  • In memory JSON data cache with Redis Server.
  • Multi instancing and keymetrics by PM2.
  • Easy to use npm updates npm-gui.

 

Callback-Oriented Scripts

On USocketNet, you can easily listens for any disconnection or re-connection event for developers to implement what the client must do when specific event occurs. Unless instructed otherwise a disconnected client will try to reconnect forever BUT the server can always forcibly ban or block by server from fully connecting, until the server is available again or allowed to accept that specific connection identity.

A heartbeat mechanism is implemented at the Engine.IO level, allowing both the server and the client to know when the other one is not responding anymore. That functionality is achieved with timers set on both the server and the client, with timeout values (the pingInterval and pingTimeout parameters) shared during the connection handshake. Those timers require any subsequent client calls to be directed to the same server, hence the sticky-session requirement when using multiples nodes.

 

Dedicated Messaging Mechanism

We dont want you to make more step other than making your games or apps great. We want you to focus on that part as we also struggle in that part of game or app development, thats why we made this milestone project of ours. Now, there are 4 types of human messaging, which do include public, variant, channel, and private. Let me one by one explain what it is:

Public is when you try to message all user that is connected to server. User that is currently authenticated and allowed by server. This can be a little bit tricky for the reason that what if all users of a million constantly make a public message, NO WORRIES! Server will try to send what the current client can only handle.

Variant,  every game can have multiple play mode, for example: the game offers survival, zombie, and any other game-twisting design on the game. For that reason, we also implemented a feature which give you option to message any group of user on the server even when you are not on the same variant of game.

Channel, when user try to create or join a room, giving the process result was a success, the user can now or will be able to message all users subscribed to that channel. Channel is our term for what is is basically or normally name in a game called, Room.

Private, last but not the least which I say I think the most important layer of human messaging, the private message. With a given registered username or connection id of your peers, you can easily privately message that user just like sending to all user inside a channel.

Within each Server, you can define arbitrary channels, called Channel, that sockets can join and leave. You can then broadcast to any given channel, reaching every socket that has joined it. This is a useful feature to send notifications to a group of users, or to a given user connected on several devices for example.