【Unity3D插件教程及源码解读】BestHttp插件用法简介:上篇

简介

Unity用来和服务器通信可以用原生的WWW,但是WWW所提供的功能并不多,不能满足很多需求。因此我们可以自己封装Http协议来满足更多的需要。在Unity游戏里使用Http协议的情况很常见,因为它操作简单,便于实现,经常用在登陆等场景下,还例如下载上传一些资源。如果想要实现进一步的控制,就要使用Socket并定义自己的协议了。

使用这个插件还有一个重点就在跨平台,因为用C#自己的HttpWebRequest也能实现。

下面简要介绍一下HTTP和Socket:

Http连接:http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉;慢,不太适合游戏中实时数据的传输。数据量。

由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

 

Socket连接:socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。所以当一个socket连接中没有数据的传输,那么为了维持连接需要发送心跳消息~~具体心跳消息格式是开发者自己定义的。

关于Socket连接与HTTP连接的区别,请参考

http://www.cnblogs.com/devinzhang/archive/2012/01/13/2321826.html

http://www.xuanyusong.com/archives/1948

BestHttp是基于RFC 2616的Http/1.1实现,支持几乎所有Unity支持的移动和主机平台,具体请见官方文档。

以下介绍主要来自于官方文档,会有一些补充信息。

BestHttp的目标是成为一款充分发挥Http/1.1潜力的,易用并且强大的Unity插件。

安装:

需要将BestHttp目录下的Plugins目录移动到Assets目录下,实际上脚本BestHTTPInstaller.cs会在导入完成后自动的完成这个过程,这里用到了[InitializeOnLoad]这个特性,我们稍后再说。

需要注意的一点是Unity低于3.5版本的话,需要删除Plugins目录下的WP8目录。

接下来开始一些基础的介绍:

首先添加Using BestHttp; 的声明

 

Get Requests

最简单的向服务器发出请求的办法是创建一个HttpRequest对象,提供url和一个回调函数给构造函数。在创建了一个新的HttpRequest对象之后,我们只需要调用Send()函数就可以发送请求了。

下面看一个例子:

HTTPRequest request = new HTTPRequest(new Uri(“https://google.com”), onRequestFinished);
request.Send();
void OnRequestFinished(HTTPRequest request, HTTPResponse response)
{
    Debug.Log(“Request Finished! Text received: ” + response.DataAsText);
}


回调函数会收到两个参数,一个是原始的HTTPRequest 对象,另一个是承载

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值