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

Unity 实现WebSocket 简单通信——客户端

创建连接

ClientWebSocket socket = new ClientWebSocket();
string url = $"ws://{ip}:{port}";
bool createUri = Uri.TryCreate(url, UriKind.RelativeOrAbsolute, out Uri uri);
if (createUri)
{var task = socket.ConnectAsync(uri, CancellationToken.None);task.Wait(1000);if (socket.State == WebSocketState.Open){Debug.Log("连接成功!");}
}

信息接收

byte[] arrry = new byte[1024];
ArraySegment<byte> buffer = new ArraySegment<byte>(arrry);var task = socket.ReceiveAsync(buffer, CancellationToken.None);
task.Wait(1000);string msg = Encoding.UTF8.GetString(buffer.Array, 0, task.Result.Count);

信息发送

ArraySegment<byte> array = new ArraySegment<byte>(Encoding.UTF8.GetBytes(msg));
var task = socket.SendAsync(array, WebSocketMessageType.Binary, true, CancellationToken.None);
task.Wait(2000);

断开连接

var task = socket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
task.Wait(2000);

拓展 

部分Unity 属性或方法在非主线程中调用出错解决

Unity 解决 “... can only be called from the main thread” 问题_unityexception: find can only be called from the m-CSDN博客文章浏览阅读5.1k次,点赞3次,收藏17次。Unity 解决 “... can only be called from the main thread” 问题_unityexception: find can only be called from the main thread. constructors ahttps://blog.csdn.net/xzqsr2011/article/details/128693150

服务端 

基于.Net 框架实现WebSocket 简单通信——服务端-CSDN博客【代码】基于.Net 框架实现WebSocket 简单通信——服务端https://blog.csdn.net/2301_79311694/article/details/139480304

相关文章:

  • Android之实现两段颜色样式不同的文字拼接进行富文本方式的显示
  • 支持 MKV、MP4、AVI、MPG 等格式视频转码器
  • Jmeter如何进行分布式测试
  • 云上战场:ToDesk云电脑、青椒云、顺网云全面对决
  • AI技术在客户反馈分析中的应用
  • R语言数据分析案例:探索在线零售数据集
  • C语言经典指针运算笔试题图文解析
  • java-SpringBoot执行定时任务-任务调度-@EnableScheduling和@Scheduled
  • JDBC简介
  • css记录:三维变化之transform-style
  • python数据分析-连云港石化基地2023年用电量分析
  • JAVA反射代码
  • go匿名函数
  • ES8新特性:async函数
  • [python学习]--模块管理
  • Android 控件背景颜色处理
  • Android开源项目规范总结
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ERLANG 网工修炼笔记 ---- UDP
  • gcc介绍及安装
  • HTTP中的ETag在移动客户端的应用
  • JavaScript设计模式之工厂模式
  • Meteor的表单提交:Form
  • mysql innodb 索引使用指南
  • Octave 入门
  • Spring Boot快速入门(一):Hello Spring Boot
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Vim Clutch | 面向脚踏板编程……
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Webpack 4 学习01(基础配置)
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 工作中总结前端开发流程--vue项目
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 记一次和乔布斯合作最难忘的经历
  • 类orAPI - 收藏集 - 掘金
  • 浏览器缓存机制分析
  • 入口文件开始,分析Vue源码实现
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 《天龙八部3D》Unity技术方案揭秘
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 我们雇佣了一只大猴子...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • # Apache SeaTunnel 究竟是什么?
  • #laravel 通过手动安装依赖PHPExcel#
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $.ajax()
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2)STM32单片机上位机
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (a /b)*c的值