当前位置: 首页 > news >正文

Unity websocket客户端

🏆 个人愚见,没事写写笔记

🏆《博客内容》: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
}

🚀感谢:🎉欢迎 👍点赞✍评论⭐收藏

http://www.lryc.cn/news/353528.html

相关文章:

  • 每日一题——博弈论(枚举与暴力)
  • pytorch笔记:torch.nn.Flatten()
  • 一个人应该怎么操作抖音小店呢?店铺操作流程给你讲解清楚!
  • “等保测评与安全运维的协同:保障企业网络安宁
  • python抽取pdf中的参考文献
  • Java进阶学习笔记21——泛型概念、泛型类、泛型接口
  • 深入理解计算机系统 家庭作业4.55
  • 第二天-⑦前后端需要注意的事项
  • Socket 函数详细讲解(Socket编程步骤、socket函数、TCP和UDP的区别)
  • 【限免】杂波环境下线性调频脉冲、巴克码、频率步进脉冲雷达MTI、脉冲压缩【附MATLAB代码】
  • 前端最新面试题(Javascript模块篇)
  • Android11热点启动和关闭
  • DI-engine强化学习入门(三)DI-ZOO强化学习环境搭建与示例运行——Atari
  • 【一站式学会Kotlin】第十节:kotlin 语言的可控性特点和安全调用操作符
  • PaddleClas 指定gpu
  • langchain进阶一:特殊的chain,轻松实现对话,与数据库操作,抽取数据,以及基于本地知识库的问答
  • 【Spring Boot】响应式编程
  • 【C++练级之路】【Lv.21】C++11——列表初始化和声明
  • 输入一串字符串,前中后都有*号,去掉字符串中间和后面的*号,保留前面的*号和字母
  • 【机器学习与大模型】驱动下的应用图像识别与处理
  • 24李林跌落神坛,880还刷吗?还是换1000、900、660?
  • 数据库漫谈-sybase
  • Springboot开发 -- Postman 调试类型详解
  • Windows 后台启动jar并且输出日志到特定日志
  • 垃圾回收机制及算法
  • 蓝桥杯-暴力搜索BFS+DFS
  • 巧用count与count()
  • MongoDB 覆盖索引查询:提升性能的完整指南
  • ECMAScript详解
  • 如何在Windows 10上对硬盘进行碎片整理?这里提供步骤