floatinghotpot / socket.io-unity

socket.io client for Unity, power game client with node.js back-end
494 stars 75 forks source link
game-development json socket-io unity websocket

socket.io-unity

unity-nodejs

Socket.IO Client Library for Unity (mono / .NET 2.0), which is ported from the JavaScript client version 1.1.0.

SocketIoClientDotNet by Quobject is a very good project, but it does not support Unity. So I spent a few overnights to port it to mono/.NET 2.0.

Now game developers can:

Installation

Downlaod socket.io.unitypackage and then import into Unity.

Or, only download the following files in Lib and put to Unity project:

It's available on Unity Asset Store for $10, but you can also download it for FREE here.

If you are interested to dig into the source code, welcome to fork the SocketIoClientDotNet for .NET 2.0.

Usage

socket.io client for Unity has a similar api to those of the JavaScript client.

using Quobject.SocketIoClientDotNet.Client;

var socket = IO.Socket("http://localhost:3000");
socket.On(Socket.EVENT_CONNECT, () =>
{
  socket.Emit("hi");
});
socket.On("hi", (data) =>
{
  Debug.Log(data);
  socket.Disconnect();
});

And, with Newtonsoft.Json.dll, we can easliy serialize / deserialize json object. Read more about Newtonsoft.Json.

Features

This library supports all of the features the JS client does, including events, options and upgrading transport.

Framework Versions

Mono, .NET 2.0

Demo

Comparison

Project Author Popularity Status
socket.io-unity floatinghotpot new ACTIVE, support .NET 2.0 and Unity
SocketIoClientDotNet Quobject 323 stars ACTIVE, support .NET 3.5 and higher, but not compatible with .NET 2.0 and Unity
UnitySocketIO NetEase 547 stars no longer maintained, not compatible with socket.io 1.x and later
unity-socket.io-DEPRECATED fpanettieri 189 stars no longer maintained
UnitySocketIO-WebSocketSharp kaistseo 108 stars no longer maintained

Credit

Thanks to the authors of following projects: