当前位置: 首页 > 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
}

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

相关文章:

Unity websocket客户端

🏆 个人愚见,没事写写笔记 🏆《博客内容》:Unity3D开发内容 🏆🎉欢迎 👍点赞✍评论⭐收藏 🔎目标:服务器和客户端可以实时的传输信息 ☀️实现目标: 使用的w…...

每日一题——博弈论(枚举与暴力)

博弈论 题目描述 运行代码 #include<iostream> #include<vector> using namespace std; int main(){int n;cin >> n;vector<int> d(n,0);for(int i 0;i < n;i){cin >> d[i];}vector<int> in(1000,0);for(int k 1;k<3;k){for(int…...

pytorch笔记:torch.nn.Flatten()

1 介绍 torch.nn.Flatten(start_dim1, end_dim-1) 将一个连续的维度范围扁平化为一个张量 start_dim (int)要开始扁平化的第一个维度&#xff08;默认值 1&#xff09;end_dim (int)要结束扁平化的最后一个维度&#xff08;默认值 -1&#xff09; 2 举例 input torch.ra…...

一个人应该怎么操作抖音小店呢?店铺操作流程给你讲解清楚!

大家好&#xff0c;我是电商小V 现在入驻抖音小店的有很多新手&#xff0c;新手最关心的就是一个人应该如何操作抖音小店&#xff0c;操作抖音小店需要做好哪几步呢&#xff1f;关于这个问题咱们就来详细的讲解一下&#xff0c; 第一点&#xff1a;开店 开店是做店的第一步&…...

“等保测评与安全运维的协同:保障企业网络安宁

"等保测评与安全运维的协同&#xff1a;保障企业网络安宁"是一个涉及信息安全领域的重要话题。这里&#xff0c;我们可以从几个方面来探讨这个主题。 1. 等保测评&#xff08;等级保护测评&#xff09; 等保测评&#xff0c;即信息安全等级保护测评&#xff0c;是依…...

python抽取pdf中的参考文献

想将一份 pdf 论文中的所有参考文献都提取出来&#xff0c;去掉不必要的换行&#xff0c;放入一个 text 文件&#xff0c;方便复制。其引用是 ieee 格式的&#xff0c;形如&#xff1a; 想要只在引用序号&#xff08;如 [3]&#xff09;前换行&#xff0c;其它换行都去掉&…...

Java进阶学习笔记21——泛型概念、泛型类、泛型接口

泛型&#xff1a; 定义类、接口、方法的时候&#xff0c;同时声明了一个或者多个类型变量&#xff08;如: <E>&#xff09;,称之为泛型类、泛型接口、泛型方法&#xff0c;我们统称之为泛型。 说明这是一个泛型类。 如果不使用泛型&#xff0c;我们可以往ArrayList中传…...

深入理解计算机系统 家庭作业4.55

...

第二天-⑦前后端需要注意的事项

①防xss跨站脚本攻击...

Socket 函数详细讲解(Socket编程步骤、socket函数、TCP和UDP的区别)

Socket 函数详细讲解和 C 示例 一、 Socket 基本概念1. Socket 简介2. Socket 编程步骤3. TCP Socket 编程示例服务器端客户端 4. 详细说明 二、 socket 函数1. domain 通讯的协议家族2. type 数据传输的类型3. protocol 最终使用的协议返回值示例 三、TCP 和 UDP的区别1. TCP&…...

【限免】杂波环境下线性调频脉冲、巴克码、频率步进脉冲雷达MTI、脉冲压缩【附MATLAB代码】

来源&#xff1a;微信公众号&#xff1a;EW Frontier 本代码主要模拟杂波环境&#xff08;飞机、地杂波、鸟类信号&#xff09;下&#xff0c;Chirp脉冲、巴克码脉冲、频率步进脉冲雷达信号的脉冲压缩及MTI、​匹配滤波。 MATLAB主代码 % 定义参数 fs 1000; % 采样率 T 1; …...

前端最新面试题(Javascript模块篇)

目录 1 数据类型基础 1.1 JS内置类型 1.2 null和undefined区别 1.3 null是对象吗?为什么? 1.4 1.toString()为什么可以调用? 1.5 0.1+0.2为什么不等于0.3?如何让其相等 1.6 如何理解BigInt 1.7 JS 整数是怎么表示的 1.8 Number() 的存储空间是多大?如果后台发送了…...

Android11热点启动和关闭

Android官方关于Wi-Fi Hotspot (Soft AP) 的文章&#xff1a;https://source.android.com/docs/core/connect/wifi-softap?hlzh-cn 在 Android 11 的WifiManager类中有一套系统 API 可以控制热点的开和关&#xff0c;代码如下&#xff1a; 开启热点&#xff1a; // SoftApC…...

DI-engine强化学习入门(三)DI-ZOO强化学习环境搭建与示例运行——Atari

Atari是一家知名的电子游戏公司&#xff0c;成立于1972年&#xff0c;是早期电子游戏产业的先驱之一。在强化学习领域&#xff0c;提到Atari通常指的是Atari 2600游戏的一系列环境&#xff0c;这些环境是用于开发和测试强化学习算法的标准平台。 Atari 2600 强化学习环境概述 …...

【一站式学会Kotlin】第十节:kotlin 语言的可控性特点和安全调用操作符

作者介绍: 百度资深Android工程师T6,在百度任职7年半。 目前:成立赵小灰代码工作室,欢迎大家找我交流Android、微信小程序、鸿蒙项目。= 一:通俗易懂的人工智能教程:https://www.captainbed.cn/nefu/ 点一下,打开新世界的大门。 二:【一站式学会Kotlin】免费领取:作者…...

PaddleClas 指定gpu

在使用PaddleClas进行模型训练或预测时&#xff0c;如果您想要指定使用特定的GPU设备&#xff0c;可以通过CUDA_VISIBLE_DEVICES环境变量来设置。 在命令行中设置GPU的方法如下&#xff1a; # 指定第0号GPU export CUDA_VISIBLE_DEVICES0 # 之后运行PaddleClas的命令&#xf…...

langchain进阶一:特殊的chain,轻松实现对话,与数据库操作,抽取数据,以及基于本地知识库的问答

特殊的chain langchain中的Chain有很多,能够轻松实现部分需求,极致简化代码,但是实现效果与模型智慧程度有关 会话链 效果与LLMChain大致相同 javascript 复制代码 from langchain.chains import ConversationChain from langchain_community.llms import OpenAI conversat…...

【Spring Boot】响应式编程

响应式编程 1.WebFlux2.比较 MVC 和 WebFlux2.1 工作方式2.2 Spring MVC 与 Spring WebFlux 的区别2.3 使用 WebFlux 的好处 3.Mono 和 Flux3.1 Mono 和 Flux 是什么3.2 Mono 和 Flux 的区别 4.开发 WebFlux 的流程4.1 注解式开发流程4.2 响应式开发流程 5.用注解式开发实现 He…...

【C++练级之路】【Lv.21】C++11——列表初始化和声明

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、列表初始化1.1 内置类型1.2 结构体或类1.3 容器 二、声明2.1 auto2.2 decltype2.3 nullptr 三、STL的…...

输入一串字符串,前中后都有*号,去掉字符串中间和后面的*号,保留前面的*号和字母

#include <stdio.h> void fun(char* a) {//***df**fr*fg***int i 0, j 0,n0,m0;char* p;p a;while (p[i] ! \0){i;//i是一共的字符的个数}printf("%d\n",i);while (a[n] *){n;//计算字母前的*的个数}printf("%d\n", n);m n;for (j n; j < …...

如何实战卫星轨道计算:SGP4算法库深度优化指南

如何实战卫星轨道计算&#xff1a;SGP4算法库深度优化指南 【免费下载链接】sgp4 Simplified perturbations models 项目地址: https://gitcode.com/gh_mirrors/sg/sgp4 卫星轨道计算是航天工程、卫星通信和天文观测的核心技术&#xff0c;而SGP4算法库作为实现简化轨道…...

如何为MVVM应用编写高质量测试:完整测试策略

如何为MVVM应用编写高质量测试&#xff1a;完整测试策略 【免费下载链接】Android-MVVM-Architecture MVVM Kotlin Retrofit2 Hilt Coroutines Kotlin Flow mockK Espresso Junit5 项目地址: https://gitcode.com/gh_mirrors/mv/Android-MVVM-Architecture 在An…...

2026年AI人才市场预测:供不应求的领域

随着人工智能技术的飞速发展&#xff0c;2026年已成为AI深度融入产业的关键节点。软件测试从业者正站在变革的十字路口&#xff0c;传统测试模式加速向智能化转型&#xff0c;催生了一系列高价值的新兴岗位。本报告从专业视角出发&#xff0c;分析AI人才市场的供需失衡现象&…...

《Moveit-实战篇1》从Rviz交互到Python脚本:解锁机械臂可视化编程控制全流程

1. Rviz可视化交互基础 第一次接触机械臂控制时&#xff0c;我被Rviz中那个可以随意拖动的交互式标记器惊艳到了。就像玩3D建模软件一样&#xff0c;用鼠标拖动几下就能让机械臂摆出各种姿势。这种直观的操作方式&#xff0c;比直接写代码调试效率高太多了。 启动Rviz环境其实很…...

网络运维实战:如何使用 Traceroute 进行网络故障排查?

网络运维实战&#xff1a;如何使用 Traceroute 进行网络故障排查&#xff1f;前言一、Traceroute 概述&#xff1a;是什么&#xff1f;能干什么&#xff1f;1.1 基本定义1.2 核心作用二、Traceroute 工作原理&#xff08;通俗版&#xff09;2.1 核心原理&#xff1a;利用 TTL 超…...

《短剧平台商品详情页前端性能优化实战》

&#x1f3ad; 《短剧平台商品详情页前端性能优化实战》背景&#xff1a;短剧平台&#xff08;如 ReelShort、河马剧场等&#xff09;的商品详情页&#xff08;PDP&#xff09;本质是“内容即商品”。用户路径为&#xff1a;刷剧 → 遇到付费节点 → 购买整部剧/解锁单集。核心…...

从USB协议到/dev/ttyACM:图解Linux CDC ACM驱动如何“翻译”数据流

从USB协议到/dev/ttyACM&#xff1a;图解Linux CDC ACM驱动的数据流翻译艺术 当你在Linux系统中插入一个USB转串口设备时&#xff0c;/dev/ttyACM0这个神奇的设备文件就悄然诞生了。这背后是一场精妙的协议翻译舞蹈——CDC ACM驱动就像一位精通多国语言的同声传译&#xff0c;在…...

Betaflight飞控系统:如何通过3个关键步骤解决你的无人机飞行难题?

Betaflight飞控系统&#xff1a;如何通过3个关键步骤解决你的无人机飞行难题&#xff1f; 【免费下载链接】betaflight Open Source Flight Controller Firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight 你是否曾经在飞行中遭遇机身抖动、响应迟钝或者…...

极域电子教室破解全攻略:如何3步解除全屏控制恢复操作自由

极域电子教室破解全攻略&#xff1a;如何3步解除全屏控制恢复操作自由 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 还在为课堂上被老师全屏控制电脑而烦恼吗&#xff1f;当极域…...

移动神器RAX3000M路由器变身家庭云之八:解锁无线打印,低成本打造全屋打印中心

1. 为什么需要无线打印解决方案 家里那台老打印机是不是经常让你头疼&#xff1f;明明打印效果还不错&#xff0c;但每次都要用USB线连接电脑才能打印&#xff0c;手机里的文件想打印更是麻烦。我家里就有一台Brother DCP-7055&#xff0c;用了十多年依然坚挺&#xff0c;但每次…...