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

莆田建网站公司软件制作公司排名

莆田建网站公司,软件制作公司排名,wordpress表单购买,网站建设公司怎么发展WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 WebSocket与http 其…

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

WebSocket与http

其实从历史上来讲,websocket是为了克服http无法双向通信而引入的,在通常的使用中,可以复用http的端口与功能,除此外,他们没有其他的联系,而是完全是独立的协议,通常情况下,http是单向的web 服务,而websocket是全双工的,服务器和客户端可以实时的传输信息,在引用时他们可以在http服务器上同时部署,特别是在NodeJs中。

WebSocket与Socket 

那么websocket和socket是什么关系呢? 其实可以理解为websocket是在socket的基础上实现的,其基于消息帧和TCP协议,而socket更通用,在编程中,可以选在tcp,udp,也需要自己控制数据流格式,每次的数据的长度都需要自己控制与读取。

下边记录两种Unity客户端使用WebSocket的方法。

1.不使用插件的客户端

引入System.Net.WebSockets;命名空间。

在使用过程中发现这种方法打包WebGl的的时候是存在问题的。

具体使用方法如下:

WebSocket 类 (System.Net.WebSockets) | Microsoft Learn

 Unity客户端代码:

using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;public class test4 : MonoBehaviour
{private void Start(){WebSocket();}public async void WebSocket(){try{ClientWebSocket ws = new ClientWebSocket();CancellationToken ct = new CancellationToken();//添加header//ws.Options.SetRequestHeader("X-Token", "eyJhbGciOiJIUzI1N");Uri url = new Uri("ws://xxx.xxx.xxx.xx:18x/xxx/xxx");await ws.ConnectAsync(url, ct);await ws.SendAsync(new ArraySegment<byte>(Encoding.UTF8.GetBytes("hello")), WebSocketMessageType.Binary, true, ct); //发送数据while (true){var result = new byte[1024];await ws.ReceiveAsync(new ArraySegment<byte>(result), new CancellationToken());//接受数据var str = Encoding.UTF8.GetString(result, 0, result.Length);Debug.Log(str);}}catch (Exception ex){Console.WriteLine(ex.Message);}}}

2.使用Best HTTP插件

这款插件不但支持WebSockets,还支持HTTP,Sockets等通信方式是一款不错的插件。也支持打包Webgl

插件地址:

https://download.csdn.net/download/f402455894/87597949?spm=1001.2014.3001.5501

客户端代码:

using UnityEngine;
using System;
using BestHTTP.WebSocket;
using Newtonsoft.Json;public class GaoYaGuHuaLu : MonoBehaviour
{string address = "ws://10.xxx.xx.193:1880/xxx";WebSocket webSocket;public GaoYaGuHuaLuEntity gaoYaGuHuaLu = new GaoYaGuHuaLuEntity();private void Awake(){}private void Start(){Init();}public void Init(){if (webSocket == null){webSocket = new WebSocket(new Uri(address));#if !UNITY_WEBGLwebSocket.StartPingThread = true;
#endif// Subscribe to the WS eventswebSocket.OnOpen += OnOpen;webSocket.OnMessage += OnMessageRecv;webSocket.OnBinary += OnBinaryRecv;webSocket.OnClosed += OnClosed;webSocket.OnError += OnError;// Start connecting to the serverwebSocket.Open();}}public void Destroy(){if (webSocket != null){webSocket.Close();webSocket = null;}}void OnOpen(WebSocket ws){Debug.Log("OnOpen: ");//  webSocket.Send("我来啦");}void OnMessageRecv(WebSocket ws, string message){Debug.LogFormat("OnMessageRecv: msg={0}", message);}void OnBinaryRecv(WebSocket ws, byte[] data){Debug.LogFormat("OnBinaryRecv: len={0}", data.Length);}void OnClosed(WebSocket ws, UInt16 code, string message){Debug.LogFormat("OnClosed: code={0}, msg={1}", code, message);webSocket = null;}void OnError(WebSocket ws, string ex){string errorMsg = string.Empty;
#if !UNITY_WEBGL || UNITY_EDITORif (ws.InternalRequest.Response != null){errorMsg = string.Format("Status Code from Server: {0} and Message: {1}", ws.InternalRequest.Response.StatusCode, ws.InternalRequest.Response.Message);}
#endifDebug.LogFormat("OnError: error occured: {0}\n", (ex != null ? ex : "Unknown Error " + errorMsg));webSocket = null;}public void OnClose(){// 关闭连接webSocket.Close(1000, "Bye!");}
}

http://www.yayakq.cn/news/632077/

相关文章:

  • 太原网站开发工程师城市建设的网站 政策法规
  • pc手机模板网站建设网站开发经济可行性分析怎么写
  • 毕节市交通建设集团网站媒体门户网站建设方案
  • 怎样把一个网站建设的更好wordpress 所有页面空白页
  • 阿里云的wordpress建站大兴做网站公司
  • 网站搜索排名查询小程序商店官网
  • 东莞网站建设公司哪家专业seo快速软件
  • 建设银行网站怎么查开户行wordpress图片合成
  • _网站建设网站手机端企业网站源码下载
  • html网页模板资源seo sem是什么
  • wordpress多站点wordpress长文章分页
  • 广州优化网站关键词网站跳转至手机端如何做
  • 营销型网站盈利方案网站公司网站建设
  • 网站开发倒计时conoha wordpress
  • 网站文章页301重定向怎么做赣州找工作的网站
  • 企业网站建设需要资料广州做贷款有什么网站
  • 红色大气网络公司企业网站源码_适合广告设计网站建设费算费用还是固定资产
  • 珠珠宝宝网网站站建建设设引物在线设计网站
  • 临沂网站开发怎么建免费论坛网站
  • php网站开发 教案哪家微网站建设
  • 做艺术教育类网站如何申请闽侯县住房和城乡建设网站
  • 呼伦贝尔市规划建设局网站门户网站建设发展趋势
  • 网站开发工具有组合域名后面wordpress
  • 深州网站上海嘉定建设局官方网站
  • 每个网站都有后台吗备案没有商城可以做商城网站吗
  • 推广网站加盟中教在线3d建模培训
  • semcms外贸网站管理系统奉贤网站开发
  • 域名就是网站名吗福州网站建设效果
  • 设计公司的网站wordpress文章标题总有网站名
  • 成都响应式网站建百度网站怎么做的