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://echo.websocket.org");
|
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) =>
|
{
|
// Reading a plain text message
|
var message = System.Text.Encoding.UTF8.GetString(bytes);
|
Debug.Log("Received OnMessage! (" + bytes.Length + " bytes) " + message);
|
};
|
|
// Keep sending messages at every 0.3s
|
InvokeRepeating("SendWebSocketMessage", 0.0f, 0.3f);
|
|
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();
|
}
|
}
|