首页 > 其他分享 >在Unity 网络通讯

在Unity 网络通讯

时间:2023-04-24 18:15:52浏览次数:32  
标签:www WebSocket 网络通讯 WebSocketSharp Unity ws Debug using

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class HttpTest : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(UnityWebRequestDemo());
    }

    IEnumerator UnityWebRequestDemo()
    {
        using (UnityWebRequest www = UnityWebRequest.Get("http://www.example.com")) // 创建一个GET请求
        {
            yield return www.SendWebRequest(); // 发送请求

            if (www.result == UnityWebRequest.Result.ConnectionError || www.result == UnityWebRequest.Result.ProtocolError) // 检查是否存在错误
            {
                Debug.LogError(www.error);
            }
            else
            {
                Debug.Log(www.downloadHandler.text); // 获取响应内容
            }
        }
    }
}

  

 

 

 

using System.Collections;
using System.Net.Http;
using UnityEngine;

public class HttpTest : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(HttpClientDemo());
    }

    IEnumerator HttpClientDemo()
    {
        using (HttpClient client = new HttpClient()) // 创建一个HttpClient实例
        {
            HttpResponseMessage response = await client.GetAsync("http://www.example.com"); // 发送GET请求并获取响应

            if (!response.IsSuccessStatusCode) // 检查是否存在错误
            {
                Debug.LogError(response.StatusCode);
            }
            else
            {
                string responseBody = await response.Content.ReadAsStringAsync(); // 获取响应内容
                Debug.Log(responseBody);
            }
        }
    }
}

  

在Unity中,可以使用 WebSocketSharp 库来实现WebSocket通信。这个库是一个C#编写的websocket客户端和服务器端实现。

下面是使用 WebSocketSharp 库实现WebSocket通信的步骤:

导入 WebSocketSharp.dll 库文件到Unity项目中。
在需要进行WebSocket通信的脚本中,添加以下代码:
csharp
using UnityEngine;
using WebSocketSharp;
using System;

public class WebSocketClient : MonoBehaviour
{
    WebSocket ws; // 定义WebSocket实例

    void Start()
    {
        // 创建WebSocket实例,并指定连接的URL
        ws = new WebSocket("ws://localhost:8080");

        // 通过回调函数处理收到的消息
        ws.OnMessage += (sender, e) =>
        {
            Debug.Log("Received Message: " + e.Data);
        };

        // 打开WebSocket连接
        ws.Connect();
    }

    void OnDestroy()
    {
        // 关闭WebSocket连接
        ws.Close();
    }
}
上述示例代码中创建了一个WebSocket客户端实例,然后在Start()函数中指定连接的URL,通过设置 OnMessage 回调函数处理接收到的消息。最后打开WebSocket连接。

另外,在关闭WebSocket连接时,应当使用 Close() 方法将WebSocket连接关闭,以释放资源。

除此之外,WebSocketSharp 还提供了其他很多有用的功能,比如二进制数据传输、ping/pong 心跳检测等,可以根据具体需求选择使用。

需要注意的是,在使用WebSocket协议时,也应当注意安全问题,避免被黑客利用进行攻击或窃取敏感信息。

 

标签:www,WebSocket,网络通讯,WebSocketSharp,Unity,ws,Debug,using
From: https://www.cnblogs.com/xiondun/p/17350372.html

相关文章

  • Unity___QFramework笔记
    引入Event引入事件监听。使用方法先定义一个事件类//定义数据变更事件publicstructCountChangeEvent//++{}//执行事件this.SendEvent<CountChangeEvent>();//++//注册事件this.RegisterEvent<CountChangeEvent>(e......
  • unity 打开电脑本地文件夹
    1.调用方法如下这是选择路径 2.代码如下usingSystem;usingSystem.IO;usingSystem.Runtime.InteropServices;usingUnityEngine;///<summary>///调用系统代码,打开本地文件夹///</summary>[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]pub......
  • Unity框架:JKFrame2.0学习笔记(十)——自动生成资源引用代码(2)
    前言上一篇记录了自动生成资源引用代码的内部实现,主要是针对addressable的资源系统的,为了在加载时不会因为名字写错,加载错,也更加方便的使用addressable加载,这一篇记录下如何使用。如何使用之前看过,在编辑器中添加了工具按钮我们可以在addressable的groups面板上添加几个测试资源我......
  • 【Unity】旋转木马
    对三角函数进行实际操作,需要对木马移动进行平滑插值木马起伏采用的Cos函数的周期实现usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassMerryGoRound:MonoBehaviour{publicTransformnode;publicfloatrudis;......
  • unity实现简单AR识别
    首先前往unity官网:https://unity.cn/releases,下拉找到下载UnityHub绿色按钮下载完安装进入UnityHub中,在侧边栏找到Installs,点击打开下载如图所示的unity版本(注:unity同ue,只能高版本向低版本兼容)下载过程中记得取消勾选Documentation,选择简体中文(注:很多内容需要访问外网......
  • Unity Resources.Load
    图片路径必须是Assets\Resources目录下面的,并且不能带扩展名//E:\Assets\Resources\img\abc.jpgstringfilePath="img/abc";vartexture=Resources.Load<Texture2D>(filePath);GameObjectobj=newGameObject("newname",typeof(SpriteRenderer));Spr......
  • Unity- 数据与网络(占坑)
    一、常用数据格式1.轻量数据格式JSON1.1对象1.2数组1.3SON的创建和解析2.可扩展标记语言XML1.使用XML语法进行解析2.使用XPath语法进行解析CSV与ExcelSQLite1.创建表2.删除表3.增加数据4.查找数据5.删除数据6.修改数据二、多线程三、网络请求的使用网络请求搭......
  • 在MacOS下使用Unity3D开发游戏
    第一次发博客,先发一下我的游戏开发环境吧。去年2月份买了一台MacBookPro2021M1pro(以下简称mbp),这一年来一直在用mbp开发游戏。我大致分享一下我的开发工具以及使用体验。1、Unity官网链接:https://unity.cn/releases我一般使用的Applesilicon版本的,支持M1芯片,无需转译。Un......
  • Unity 有效降低GPU占用
    此乃经验所得,持续更新中,转载请标明出处1、降低DrawCall可有效降低GPU占用2、通过Application.targetFrameRate主动降低帧率可有效降低GPU占用3、关闭Camera的HDR和MSAA可有效降低GPU的占用,特别是场景中Camera多的时候,效果很明显......
  • Unity框架:JKFrame2.0学习笔记(五)——事件系统(2)
    前言上一篇记录了框架的事件系统的内部构成和实现,这篇记录下事件系统的使用。如何使用新建脚本EventTestusingJKFrame;usingUnityEngine;publicclassEventTest:MonoBehaviour{voidStart(){//添加监听EventSystem.AddEventListener("inp......