-
Netty UDP-简介
背景
到目前为止,你所见过的绝大多数的例子都使用了基于连接的协议,如TCP。
在本章中,我们将会把重点放在一个无连接协议即用户数据报协议(UDP)上,它通常用在性能至关重要并且能够容忍一定的数据包丢失的情况下。
我们将会首先概述 UDP 的特性以及它的局限性。
在这之后,我们将描述本章的示例应用程序,其将演示如何使用UDP 的广播能力。
我们还会使用一个编码器和一个解码器来处理作为...
2017-11-16 11:23:06 |
Netty
-
Netty WebSocket-netty 实现案例
我们的WebSocket 示例应用程序
场景
为了让示例应用程序展示它的实时功能,我们将通过使用WebSocket 协议来实现一个基于浏览器的聊天应用程序,就像你可能在Facebook 的文本消息功能中见到过的那样。
我们将通过使得多个用户之间可以同时进行相互通信,从而更进一步。
图12-1 说明了该应用程序的逻辑:
(1)客户端发送一个消息;
(2)该消息将被广播到所有其他连接...
2017-11-16 11:23:06 |
Netty
-
Netty WebSocket-实时 web
实时 web
如果你有跟进Web 技术的最新进展,你很可能就遇到过“实时Web”这个短语,而如果你在工程领域中有实时应用程序的实战经验,那么你可能有点怀疑这个术语到底意味着什么。
因此,让我们首先澄清,这里并不是指所谓的硬实时服务质量(QoS),硬实时服务质量是保证计算结果将在指定的时间间隔内被递交。
仅HTTP 的请求/响应模式设计就使得其很难被支持,从过去所设计的各种方案中都没有提...
2017-11-16 11:23:06 |
Netty
-
Netty SSL/TLS
Netty 的开箱即用
Netty 为许多通用协议提供了编解码器和处理器,几乎可以开箱即用,这减少了你在那些相当繁琐的事务上本来会花费的时间与精力。
在本章中,我们将探讨这些工具以及它们所带来的好处,其中包括Netty 对于SSL/TLS 和WebSocket 的支持,以及如何简单地通过数据压缩来压榨HTTP,以获取更好的性能。
通过SSL/TLS 保护Netty 应用程序
如今,数...
2017-11-16 11:23:06 |
Netty
-
Netty 序列化
序列化数据
JDK 提供了ObjectOutputStream 和ObjectInputStream,用于通过网络对POJO 的基本数据类型和图进行序列化和反序列化。
该API 并不复杂,而且可以被应用于任何实现了java.io.Serializable 接口的对象。
但是它的性能也不是非常高效的。
在这一节中,我们将看到Netty 必须为此提供什么。
JDK 序列化
如果你的应...
2017-11-16 11:23:06 |
Netty
-
Netty 空闲的连接和超时
空闲的连接和超时
连接管理
到目前为止,我们的讨论都集中在Netty 通过专门的编解码器和处理器对HTTP 的变型HTTPS 和WebSocket 的支持上。
只要你有效地管理你的网络资源,这些技术就可以使得你的应用程序更加高效、易用和安全。
所以,让我们一起来探讨下首先需要关注的——连接管理吧。
核心 API
检测空闲连接以及超时对于及时释放资源来说是至关重要的。
由于这是一...
2017-11-16 11:23:06 |
Netty
-
Netty HTTP/HTTPS
构建基于Netty 的HTTP/HTTPS 应用程序
HTTP/HTTPS 是最常见的协议套件之一,并且随着智能手机的成功,它的应用也日益广泛,因为对于任何公司来说,拥有一个可以被移动设备访问的网站几乎是必须的。
这些协议也被用于其他方面。
许多组织导出的用于和他们的商业合作伙伴通信的 WebService API 一般也是基于HTTP(S)的。
接下来,我们来看看 Netty 提供...
2017-11-16 11:23:06 |
Netty
-
Netty 基于分隔符的协议和基于长度的协议
解码基于分隔符的协议和基于长度的协议
在使用 Netty 的过程中,你将会遇到需要解码器的基于分隔符和帧长度的协议。
下一节将解释 Netty 所提供的用于处理这些场景的实现。
基于分隔符的协议
基于分隔符的(delimited)消息协议使用定义的字符来标记的消息或者消息段(通常被称为帧)的开头或者结尾。
由RFC文档正式定义的许多协议(如SMTP、POP3、IMAP以及Telne...
2017-11-16 11:23:06 |
Netty