🏆 個人愚見,沒事寫寫筆記
🏆《博客內容》:Unity3D開發內容
🏆🎉歡迎 👍點贊?評論?收藏
🔎目標:服務器和客戶端可以實時的傳輸信息
??實現目標:
使用的websocket插件:NativeWebSocket
客戶端代碼:
using NativeWebSocket; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using WebSocketState = NativeWebSocket.WebSocketState;public class WebSocketClient : MonoBehaviour {private WebSocket _webSocket;public string webSocketServerURL = "ws://10.2.17.23:28080";private void Awake(){_webSocket = new WebSocket(webSocketServerURL);}private void Start(){_webSocket.OnOpen += _OnOpen;//連接成功時_webSocket.OnClose += _OnClose;//連接關閉_webSocket.OnError += _OnError;//連接出錯_webSocket.OnMessage += _OnMessage;//從服務器發來的消息OnConnectServer();//開始連接服務器}private async void OnApplicationQuit(){await _webSocket.Close();}private void Update(){ #if !UNITY_WEBGL || UNITY_EDITOR_webSocket.DispatchMessageQueue(); #endifif (Input.GetKeyDown(KeyCode.S)){SendMessageToServer();}}public async void OnConnectServer(){await _webSocket.Connect();}public async void SendMessageToServer(){if (_webSocket.State == WebSocketState.Open){await _webSocket.Send(new byte[] { 10, 20, 30 });//發送一條字節數據await _webSocket.SendText("發送一條string數據");}}#region WebSocket 回調事件private void _OnOpen(){Debug.Log("連接成功");}private void _OnClose(WebSocketCloseCode closeCode){Debug.Log("連接關閉");}private void _OnError(string errorMsg){Debug.LogError("出錯原因:" + errorMsg);}private void _OnMessage(byte[] dataBytes){var message = System.Text.Encoding.UTF8.GetString(dataBytes);Debug.Log("接收到的消息: (" + dataBytes.Length + " bytes) " + message);}#endregion }