Netty中WebSocket客户端的使用

Netty中WebSocket服务端的使用 中,介绍了在Netty中使用WebSocket的用法,在完成之后,我们在浏览器中进行了相关的测试,这里我们在使用Netty实现一个简单的WebSocket客户端,结合之前的服务端进行通信。


使用Netty实现Http服务器及客户端 中,我们实现了服务端后,紧接着也是使用Netty使用了一个简单的客户端,其中就是使用了Netty提供的DefaultFullHttpRequest发起一次Http请求,然后再读取服务器返回的消息。


这里我们也是依据之前实现的Http客户端进行修改,然后实现一个实现WebSocket的客户端,首先我们在客户端封装了一个带有连接地址的WebSocketClientHandshaker(其uri、V13等就是WebSocket的相关参数),将其传给WebSocketClientHandler,该Handler是我们自己实现的
在这里插入图片描述
在这里插入图片描述


然后就是标准的Netty启动,其中在Pipeline中添加了相关的WebSocket处理,其中需要判断一下关于SSL的处理,以及我们自己实现的WebSocketClientHandler
在这里插入图片描述


等待客户端启动完成后,我们就可以在控制台进行相应的消息发送了,如下:
在这里插入图片描述


接来下看一看我们自己实现的WebSocketClientHandler,在其中当通道建立,就进行握手动作
在这里插入图片描述


然后握手完成后,就是进行读取我们服务端发送的相关消息,但是读取的消息的时候,因为握手时间可能较长,握手动作还没有结束,我们需要判断一下握手是否完成
在这里插入图片描述

当握手动作完成后,我们服务端应该收到的不再是Http请求了,这里我们处理WebSocket的相关请求即可,但是在 Netty中WebSocket服务端的使用 中,我们是有相关Http请求的,如浏览器请求相关的html页面等,这里我们是不需要相关html页面的,所以我们直接将其Http请求忽略即可,然后处理相关的WebSocket请求。


这里我们客户的也处理好了,这里我们就将之前实现的服务端和这里的客户端进行联合测试,如下:
在这里插入图片描述


然后我们还可以结合浏览器来进行相关测试,如下:
在这里插入图片描述

发布了286 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/newbie0107/article/details/104596960