NativeWebSocket
ForkForked from Native WebSockets
๐ WebSocket client for Unity - with no external dependencies (WebGL, Native, Android, iOS, UWP)
Unity Project
Built with Unity 2021.2.11f1 ยท download the source from GitHub

README
This is the simplest and easiest WebSocket library for Unity you can find!
- No external DLL's required (uses built-in
System.Net.WebSockets) - WebGL/HTML5 support
- Supports all major build targets
- Very simple API
- (Used in Colyseus Unity SDK)
Consider supporting my work on Patreon | Ko-fi | PayPal
Installation
Requires Unity 2019.1+ with .NET 4.x+ Runtime
Install via UPM (Unity Package Manager)
- Open Unity
- Open Package Manager Window
- Click Add Package From Git URL
- Enter URL:
https://github.com/endel/NativeWebSocket.git#upm
Install manually
- Download this project
- Copy the sources from
NativeWebSocket/Assets/WebSocketinto yourAssetsdirectory.
Usage
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using NativeWebSocket;
public class Connection : MonoBehaviour
{
WebSocket websocket;
// Start is called before the first frame update
async void Start()
{
websocket = new WebSocket("ws://localhost:3000");
websocket.OnOpen += () =>
{
Debug.Log("Connection open!");
};
websocket.OnError += (e) =>
{
Debug.Log("Error! " + e);
};
websocket.OnClose += (e) =>
{
Debug.Log("Connection closed!");
};
websocket.OnMessage += (bytes) =>
{
Debug.Log("OnMessage!");
Debug.Log(bytes);
// getting the message as a string
// var message = System.Text.Encoding.UTF8.GetString(bytes);
// Debug.Log("OnMessage! " + message);
};
// Keep sending messages at every 0.3s
InvokeRepeating("SendWebSocketMessage", 0.0f, 0.3f);
// waiting for messages
await websocket.Connect();
}
void Update()
{
#if !UNITY_WEBGL || UNITY_EDITOR
websocket.DispatchMessageQueue();
#endif
}
async void SendWebSocketMessage()
{
if (websocket.State == WebSocketState.Open)
{
// Sending bytes
await websocket.Send(new byte[] { 10, 20, 30 });
// Sending plain text
await websocket.SendText("plain text message");
}
}
private async void OnApplicationQuit()
{
await websocket.Close();
}
}
Demonstration
1. Start the local WebSocket server:
cd Server
npm install
npm start
2. Open the NativeWebSocket/Assets/WebSocketExample/WebSocketExampleScene.unity on Unity and Run.
Acknowledgements
Big thanks to Jiri Hybek. This implementation is based on his work.
License
Apache 2.0
Comments
No comments yet. Be the first!
Sign in to join the conversation
Sign In