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

影视播放网站建设网站建设资金申请报告

影视播放网站建设,网站建设资金申请报告,厦门网站建设外贸,做网站需要多少带宽C#服务端用到Fleck包#xff0c;它包含哪些可用的回调函数#xff0c;有哪些常用的api方法#xff1f; 演示#xff1a;服务端收到Unity用户发来的信息 1、Fleck服务器提供哪些回调函数 Fleck提供的回调函数有下面几种#xff1a; //用户连入服务器时... Action OnOp…C#服务端用到Fleck包它包含哪些可用的回调函数有哪些常用的api方法 演示服务端收到Unity用户发来的信息 1、Fleck服务器提供哪些回调函数 Fleck提供的回调函数有下面几种 //用户连入服务器时... Action OnOpen { get; set; }//用户与服务器断开连接时... Action OnClose { get; set; }//收到字符串消息时... Actionstring OnMessage { get; set; }//收到二进制数据时... Actionbyte[] OnBinary { get; set; }//收到别人发来的ping信息时... Actionbyte[] OnPing { get; set; }//收到别人发来的pong信息时... Actionbyte[] OnPong { get; set; }//出错的时候调用...[?谁出错服务器出错还是连接出错出的是什么错] ActionException OnError { get; set; }2 、服务器提供的其它API 其它常用的api主要有 //发送字符串 Task Send(string message);//发送字节码(二进制数据) // 1Byte 8 bits // 1KB 1024 Bytes // 1MB 1024KB Task Send(byte[] message);//发送一个ping信息 Task SendPing(byte[] message);//发送一个pong信息 Task SendPong(byte[] message);//关闭连接 void Close();//关闭连接关闭连接池中指定序号的连接 void Close(int code);ping pong的作用是啥 WebSocket为了保持客户端、服务端的实时双向通信需要确保客户端、服务端之间的TCP通道保持连接没有断开。然而对于长时间没有数据往来的连接如果依旧长时间保持着可能会浪费包括的连接资源。但不排除有些场景客户端、服务端虽然长时间没有数据往来但仍需要保持连接。这个时候可以采用心跳来实现。 发送方-接收方ping 接收方-发送方pong C# 在WinForm里使用Fleck作为服务器的简单示例代码 private void button1_Click(object sender, EventArgs e) {if (hasStartedServer)//不重复启动服务器实例return;var server new WebSocketServer(ws://192.168.0.137:8081); //ws://localhost:8081 ws://127.0.0.0:8181server.Start(socket {//连上时...socket.OnOpen () {Debug.WriteLine($有新用户连入{socket.ConnectionInfo.ClientIpAddress});};//断开时...socket.OnClose () {Debug.WriteLine($用户断开连接{socket.ConnectionInfo.ClientIpAddress});UserSockets.First(x x.socket.ConnectionInfo.Id socket.ConnectionInfo.Id).connected false;};//收到string信息时...socket.OnMessage message {socket.Send($服务器收到消息 : {DateTime.Now.ToString()});Debug.WriteLine($收到一条消息来自{socket.ConnectionInfo.ClientIpAddress});Debug.WriteLine(message);var cmd message.Split(#)[0];if (cmd name){var userID message.Split(#)[1];Debug.WriteLine($收到一条消息来自用户{userID} 连接id{socket.ConnectionInfo.Id});UserSocket user new UserSocket(){userID userID,socket socket,connected true};UserSockets.Add(user);}};//收到二进制信息时...socket.OnBinary bytes {var userName UserSockets.First(x x.socket.ConnectionInfo.Id socket.ConnectionInfo.Id).userID;Debug.WriteLine($收到二进制数据长度为{bytes.Length}Bytes,来自ip:{socket.ConnectionInfo.ClientIpAddress},userID {userName});};});Debug.WriteLine(服务器已经启动);hasStartedServer true; }3、服务器与客户端建立的连接包含哪些信息 public interface IWebSocketConnectionInfo{string SubProtocol { get; }string Origin { get; }string Host { get; }string Path { get; }string ClientIpAddress { get; }int ClientPort { get; }IDictionarystring, string Cookies { get; }IDictionarystring, string Headers { get; }Guid Id { get; }string NegotiatedSubProtocol { get; }}每次建立的连接Id号是唯一的。 4、服务器接收数据时是否会粘包 经测试同一连接连续向服务器发送数据时每次OnBinary收到的消息是完整的。 还没瞻仰源码后面有空看看server端TCP接收数据时应该是做了包的合并处理接到一个整坨数据才调用的OnBinary。 Unity用户端代码 连发50笔数据每次发送1M bytes int i 0;while (i 50) //连发50笔数据每次发送1M bytes{var bytesArray new byte[1048576]; // 1024 * 1024 1048576await websocket.Send(bytesArray); //或者直接await测试结果一样Debug.Log($发送数据-{i});i;}C#服务端代码 每当收到数据时把收到的数据长度打印出来 socket.OnBinary bytes {Debug.WriteLine($收到二进制数据长度为{bytes.Length}Bytes,来自{socket.ConnectionInfo.ClientIpAddress});};5、同一个ip上有两个应用同时发来信息如何区分这些连接属于哪个用户 简要思路每个用户端启动的时候需要用户名登录建立连接时告诉服务器这个socket是哪个userID的凡是该用户建立连接后台都把该连接绑定到user ID。 1、每次建立连接connection的id是唯一的 2、服务器端维护一个【连接列表】string userID - webSocket sockt如下所示 public class UserSocket {/// summary/// 用户ID/// /summarypublic string userID;/// summary/// socket对象/// /summarypublic IWebSocketConnection socket;/// summary/// 状态true-可用状态 false-断开状态/// /summarypublic bool connected; }userIDsocketconnectedguestsocket1trueuser1socket2trueuser2socket3false………userNsocketMtrue 客户端建立连接的时候发送信息给服务器告诉服务器该连接对应那个用户名。 服务器收到信息后及时更新【连接列表】。 用户端在建立连接的时候发送一个string命令告诉服务器这个连接后面是哪个用户user ID websocket.OnOpen () {Debug.Log(连接成功); websocket.SendText($name#user001); //发送用户id };服务器收到信息的处理 //收到二进制信息 socket.OnBinary bytes {var userName UserSockets.First(x x.socket.ConnectionInfo.Id socket.ConnectionInfo.Id).userID;Debug.WriteLine($收到二进制数据长度为{bytes.Length}Bytes,来自ip:{socket.ConnectionInfo.ClientIpAddress},userID {userName}); };收到信息且识别了是哪个userID发来的 6、本文测试环境 Win10 Unity2021.3.18 VS2019(.NET 5.0)
http://www.hkea.cn/news/14340163/

相关文章:

  • 宁波网站优化公司电话邢台县教育局五库建设网站
  • 路桥网站制作国内云服务器免费
  • 网站建设定义公司部门解散员工赔偿
  • 做网站建设销售工资网站开发网页权限如何控制
  • 企业做网站推广产品需要多少钱wordpress 插件反复安装
  • 网站建设如何吸引投资没有网站可以做app吗
  • 石狮网站建设联系电话开发高端网站开发
  • 和一个网站做接口公司网站建设费计入什么科目
  • 地图素材如何做ppt模板下载网站电力系统网络设计报告
  • 盐山做网站的网络传媒有限公司
  • 公司网站如何推广网页升级访问每天都更新
  • 哪里有做网站推广设置个网站要多少钱
  • 佛山网站制作哪里实惠万网网站建设方案书
  • 求个网站2022做网站产品图片素材
  • 电大考试亿唐网不做网站做品牌免费word模板网站
  • 公司网站建设意见和建议保险官网
  • flash网站模板修改视频网站开发平台
  • 口碑好的网站建设哪家好开一个设计公司
  • 黄埔网站建设设计网站备案 空间
  • 济南外贸网站建设公司包头网站建设熊掌号
  • 增加网站访客全球搜索
  • 网站建设比赛网站留言短信通知
  • 电子商务网站建设与维护读书心得北京网页设计公司兴田德润团队
  • 设备高端网站建设学创杯营销之道模板
  • 没有网站想做个链接页面怎么做营业执照网上年检入口
  • 写网站编程需要什么网页开发与设计的内容
  • 寻找网站设计与制作福建省住房与城乡建设部网站
  • 广东建设业协会网站精品网的功能和服务
  • 建设银行网站怎么看不见余额搜狗网站录入
  • 网站建设借鉴大数据营销的核心