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.mzph.cn/bicheng/15914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术速递|无障碍应用程序之旅:键盘可访问性和 .NET MAUI

作者:Rachel Kang 排版:Alan Wang 首先让我们一起来看看您的应用程序是否支持键盘访问: 启动您的其中一个应用。如果您的设备尚未连接物理键盘,请连接物理键盘。像平常一样导航您的应用程序,并且仅使用键盘来执行此操…

如何使用Rust构建Python原生库?注意,不是动态链接库!!!

参考文档:https://github.com/PyO3/pyo3 创建python虚拟环境: conda create --name pyo3 python3.11.7激活虚拟环境: conda activate pyo3安装依赖: pip install maturin初始化项目: maturin init构建项目&#x…

设计模式--目录

设计模式是软件工程中为解决常见问题而总结出来的一系列通用解决方案。它们可以分为三大类别:创建型模式、结构型模式和行为型模式。下面列举了一些常见的设计模式及其分类: 创建型模式(Creational Patterns) 创建型模式关注对象的创建过程&#xff0c…

小程序checkbox改成圆形与radio样式保持一致

修改前 修改后 html: <view class"agreement"><checkbox value"{{ isAgreed }}" bind:tap"toggleCheckbox" /><text>我同意室外智能健身房 <text class"link" bind:tap"showUserProtocol">用户协…

【JTS Topology Suite】Java对二维几何进行平移、缩放、旋转等坐标变换

JTS介绍 Github项目地址&#xff1a;https://github.com/locationtech/jts Maven库地址&#xff1a;https://mvnrepository.com/artifact/org.locationtech.jts JTS Topology Suite是一个用于创建和操作二维矢量几何的Java库。 JTS有对应的.NET版本NetTopologySuite库&…

P3128 [USACO15DEC] Max Flow P题解(树上差分,最近公共祖先,图论)

前言&#xff1a; 题目链接&#xff1a;P3128 [USACO15DEC] Max Flow P - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 讲解&#xff1a; 这一题含金量真算高的&#xff0c;包含了建树&#xff08;用了图论的知识&#xff09;&#xff0c;求最近公共祖先&#xff08;倍增法…

2024目前网上最火短剧机器人做法,自动搜索发剧 自动更新资源 自动分享资源

目前整个项目圈子很多的短剧机器人&#xff0c;我写的&#xff0c;自动搜索发剧&#xff0c;自动更新资源&#xff0c;自动分享资源&#xff0c;前段时间大部分做短剧的都是做的短剧分成&#xff0c;我的一个学员做的30W播放量才200块收益&#xff0c;备受启发&#xff0c;我就…

springboot社区助老志愿服务系统-计算机毕业设计源码96682

摘要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在图书馆管理的要求下&#xff0c;开发一款整体式结构的社区助老志愿服务…

社交媒体数据恢复:绿洲

本教程将向您展示如何在绿洲平台上备份和恢复数据&#xff0c;但不涉及推荐任何具体的数据恢复软件。 一、绿洲平台数据备份 为了确保数据的安全&#xff0c;在日常使用过程中&#xff0c;我们需要定期备份绿洲平台上的数据。以下是备份绿洲平台数据的步骤&#xff1a; 登录绿…

three.js能实现啥效果?看过来,这里都是它的菜(09)

Hi&#xff0c;这是第九期了&#xff0c;继续分享three.js在可视化大屏中的应用&#xff0c;本期分享位移动画的实现。 位移动画 Three.js位移动画是指在Three.js中实现物体位置的平移动画。通过改变物体的位置属性&#xff0c;可以实现物体沿着指定路径从一个位置移动到另一…

Java——图书管理系统万字详解(附代码)

框架搭建 book包 将书相关的放到book包中&#xff0c;创建一个Book类用来设置书的属性&#xff0c;包括书名、作者、价格、类型、是否被借出等。 以上属性均被private所修饰 利用编译器生成构造方法&#xff08;不需要构造isBorrowed&#xff0c;因为其初始值为false&#…

微前端架构 之 应用之间样式隔离 (四)

1. 使用 CSS Modules 进行样式隔离 1. 安装必要的依赖 如果你使用 webpack 作为构建工具&#xff0c;你可能需要安装 css-loader 和 style-loader。如果你的项目使用 Create React App 或其他现代前端框架&#xff0c;这些可能已经内置了。 npm install --save-dev css-loade…

springboot结合baomidou dynamic-datasource组件实现多数据源

dynamic-datasource组件实现多数据源 一、背景介绍二、 思路方案三、过程四、总结五、升华 一、背景介绍 博主最近研发的项目中由于业务需要&#xff0c;在项目中使用到多个数据源。使用到了baomidou的dynamic-datasource组件来实现访问不同的数据源。觉得挺有意思的也是进行了…

Redis事务(1)

什么是事务&#xff1f; Redis 的事务和 MySQL 的事务概念上是类似的. 都是把⼀系列操作绑定成⼀组. 让这⼀组能够批量执行。 但是注意体会 Redis 的事务和 MySQL 事务的区别: 弱化的原⼦性: redis 没有 “回滚机制”. 只能做到这些操作 “批量执⾏”. 不能做到 “⼀个失败就…

海外链游地铁跑酷全自动搬砖挂机掘金变现项目,号称单窗口一天收益30+(教程+工具)

一、项目概述 地铁跑酷海外版国外版自动搬砖挂机掘金项目是一款结合了地铁跑酷元素的在线游戏&#xff0c;为玩家提供一个全新的游戏体验&#xff0c;使得玩家可以轻松地进行游戏&#xff0c;无需手动操作&#xff0c;节省时间和精力。 二、游戏特点 1. 自动化操作&#xff1…

AI应用案例:影像报告智能辅助编辑系统

今天给大家介绍一个医疗行业的案例“影像报告智能辅助编辑系统”&#xff01;该案例已经在某三甲医院落地&#xff0c;模型准确度超过80%。 该项目上线后&#xff0c;保守估计&#xff0c;能为每位医生的每一张报告至少省下1分钟时间和2分钟的精力&#xff0c;20位初级医生&…

Django Web:搭建Websocket服务器(入门篇)

Django Web架构 搭建Websocket服务器&#xff08;1&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…

如何在Windows 10上对硬盘进行碎片整理?这里提供步骤

随着时间的推移&#xff0c;由于文件系统中的碎片&#xff0c;硬盘驱动器可能会开始以较低的效率运行。为了加快驱动器的速度&#xff0c;你可以使用内置工具在Windows 10中对其进行碎片整理和优化。方法如下。 什么是碎片整理 随着时间的推移&#xff0c;组成文件的数据块&a…

Incremental Task and Motion Planning: A Constraint-Based Approach(翻译)

摘要——我们提出了一种新的任务和运动算法规划&#xff08;TMP&#xff09;&#xff0c;并讨论获得TMP的健壮解决方案所必需的需求和抽象。我们的迭代深化任务和运动规划&#xff08;IDTMP&#xff09;与类似的、最先进的、概率完全的规划器相比&#xff0c;该方法是概率完全的…

LeetCode热题100——矩阵

73.矩阵清零 题目 给定一个 *m* x *n* 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 示例…