游戏服务器中使用Netty进行Http请求管理

这篇具有很好参考价值的文章主要介绍了游戏服务器中使用Netty进行Http请求管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

游戏服务器中使用Netty进行Http请求管理

背景

作为游戏服务器,无法避免与第三方系统交互。例如:登陆、充值、中台等,这些平台很多都是Web平台,提供http服务接口。这就需要游戏具备http访问功能。

解决方案

Netty实现异步http调用。

原因:

效率:netty的多路复用技术,实现的异步http可以用很少的几个线程实现同时成百上千个http请求。文章来源地址https://www.toymoban.com/news/detail-481467.html

记录

  • 准备
    • 初始化EventLoopGroup,设置线程数
    • 初始化Bootstrap
    • 初始化SslContext,支持SSL
  • 请求:get和post
    • 通过URI解析url,获得port
    • 创建get请求
      • 构造QueryStringEncoder,作为http参数
      • 构造DefaultFullHttpRequest,设置http版本和get方式
      • header设置connect=close
    • 创建post请求
      • 构造DefaultFullHttpRequest,设置http版本和post方式
      • header设置connect=close
      • 构造HttpPostRequestEncoder,添加post参数
    • 构造HttpRequest完成
  • 复制基础Bootstrap#clone,并继续构造请求参数
  • ChannelInitializer初始化,使用了netty提供的几个Handler:HttpClientCodec、HttpObjectAggregator
  • 发起HTTP的connnect请求
  • 在Connect的future事件监听,发送HttpRequest请求数据
  • 返回数据,同步主线程
    • HTTPResponse是在Netty的EventLoopGroup线程
    • HttpClientAsyncCallback通过给主线程Port#addTask实现数据同步
    • 返回可以序列化的数据结构AsyncHttpResult

注意事项

  • 可以通过EventLoopGroup#schedule处理请求超时事件
  • Handler#exceptionCaught的异常处理

到了这里,关于游戏服务器中使用Netty进行Http请求管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用HTTP/2在Linux上的Nginx服务器进行优化

    随着互联网的发展,HTTP/2协议逐渐成为主流。与传统的HTTP/1.1相比,HTTP/2提供了更高的传输效率和更好的安全性。在Linux上使用Nginx服务器进行优化,我们可以充分利用HTTP/2的优势,提高网站的性能和用户体验。 1. 安装Nginx并启用HTTP/2 首先,确保你的Nginx服务器已经安装并正常

    2024年02月01日
    浏览(48)
  • linux高并发web服务器开发(web服务器)18_函数解析http请求, 正则表达式,sscanf使用,http中数据特殊字符编码解码

    pdf详情版 编写函数解析http请求 ○ GET /hello.html HTTP/1.1rn ○ 将上述字符串分为三部分解析出来 编写函数根据文件后缀,返回对应的文件类型 sscanf - 读取格式化的字符串中的数据 ○ 使用正则表达式拆分 ○ [^ ]的用法 通过浏览器请求目录数据 ○ 读指定目录内容  opendir 

    2024年02月16日
    浏览(45)
  • .NET Core(C#)使用Titanium.Web.Proxy实现Http(s)代理服务器监控HTTP请求

    关于Titanium.Web.Proxy详细信息可以去这里仔细看看,这里只记录简单用法 NuGet直接获取Titanium.Web.Proxy 配置 与其说是配置,不如就说这一部分就是未来你需要使用的部分,想知道具体每个部分是干什么的就去看原文链接 全放过来太占地方 最后的 Console.Read(); 是一个等待函数,你

    2024年02月09日
    浏览(45)
  • ioGame21发布,史诗级增强,Java Netty 轻量级网络游戏服务器框架

    标题:ioGame21 发布:史诗级增强,Java Netty 轻量级网络游戏服务器框架 引言 近日,一款名为 ioGame21 的轻量级网络游戏服务器框架在 GitHub 上正式发布。这款框架基于 Java Netty 构建,具有高性能、高可扩展性和易于使用的特点。ioGame21 的发布将为游戏开发者提供一个强大的工

    2024年02月19日
    浏览(39)
  • 使用数据抓包和篡改技术对iOS小游戏进行实践:服务器

    引言: 数据抓包和篡改是一种常用的技术手段,用于分析和修改移动应用程序与服务器之间的通信数据。在iOS小游戏开发中,了解和掌握这些技术可以帮助开发人员测试和调试游戏,并实现一些有趣的功能。本文将介绍如何使用数据抓包和篡改技术对iOS小游戏进行实践,以及

    2024年04月09日
    浏览(56)
  • 服务器发送http请求

    1、发送GET请求 curl localhost:9009/setCreateDataItem?a=1b=nihao 2、发送POST请求 3、发送json格式请求: 其中, -H 代表header头, -X 是指定什么类型请求(POST/GET/HEAD/DELETE/PUT/PATCH), -d 代表传输什么数据。这几个是最常用的。 查看所有curl命令: man curl或者curl -h 请求头:H,A,e 响应头:I,i,D

    2024年01月25日
    浏览(37)
  • c# 设置代理服务器发送http请求

    2024年02月16日
    浏览(34)
  • curl命令服务器上执行http请求

     1. 现在本地使用postman生成curl命令    注意: 将ip改成127.0.0.1,端口是实际服务运行的端口   2. 登录云服务容器执行命令,就可以模拟浏览器调用接口了

    2024年02月08日
    浏览(36)
  • QT实现客户端服务器HTTP(get请求、post请求)

    服务器代码如下: QtHttpForS.h QtHttpForS.cpp main.cpp QtHttpForS.ui 客户端代码: QtHttpForC.h QtHttpForC.cpp mian.cpp QtHttpForC.ui 程序运行效果: GET请求: POST请求: POST请求使用postman测试: 注意: 可以发现,在使用postman进行POST请求发送时,服务器接收到的请求头与QTSocket的POST请求的请求头

    2023年04月22日
    浏览(48)
  • HttpClient:HTTP GET请求的服务器响应输出

    前言 在现代软件开发中,与网络通信相关的技术变得愈发重要。Java作为一种强大而灵活的编程语言,提供了丰富的工具和库,用于处理各种网络通信场景。本文将聚焦在Java中使用HttpClient库发送HTTP GET请求,并将服务器的响应数据进行输出,同时加入代理服务器的配置,以应

    2024年02月20日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包