当前位置: 首页 > 知识库问答 >
问题:

妮蒂。将HttpRequest转换为FrameWebSocket,然后再转换回来

施玉宸
2023-03-14

有人能帮助我吗?

我正在编写客户端-服务器应用程序。服务器和客户端与websockets连接。服务器的管道:

ChannelPipeline pipeline = pipeline();
   pipeline.addLast("decoder", new HttpRequestDecoder());
   pipeline.addLast("aggregator", new HttpChunkAggregator(65536));
   pipeline.addLast("encoder", new HttpResponseEncoder());
   pipeline.addLast("handler", new WebSocketServerHandler());

客户端的管道:

final WebSocketClientHandshaker handshaker =
                    new WebSocketClientHandshakerFactory().newHandshaker(
                            uri, WebSocketVersion.V13, null, false, customHeaders);
pipeline.addLast("decoder", new HttpResponseDecoder());
                    pipeline.addLast("encoder", new HttpRequestEncoder());
                    pipeline.addLast("ws-handler", new WebSocketClientHandler(handshaker));

这个应用程序就像一个代理服务器,从外部获取httprequest,然后通过websockets发送给客户端。客户端接收它并将其发送到修改后的指定url,接收响应并通过websockets将其发送回服务器。服务器收到此响应,并将数据写入请求它的通道。

目前的主要问题是,将HttpRequest转换为WebSocketFrame并返回的最佳方式是什么?目前的想法是读取字符串中的HttpRequest,然后将其作为TextWebSocketFrame发送。在这种情况下,我认为我需要替换那些为服务器和客户端指定的标准解码器,这些解码器目前用于不进行双重对话。我在Netty中没有找到这样的解码器。

但是,也许这是一个坏的方式,并存在一些更好的决定?非常感谢回答!我是新来的netty。

此致敬意

共有1个答案

韦修文
2023-03-14

如果您打算封装整个HTTP请求,那么我认为您通过二进制WebSocketFrame发送它是正确的。

 类似资料:
  • 标题说明了一切: null 编辑:工作示例要简单得多(多亏了@T.S.): 谢谢!

  • 试图对这个问题中的各个数字求和。然而,当涉及负数时,函数就会分崩离析。这是因为当您使用toString()时,会将负号转换为NewStr中的值。例如,在本例中,newstr[0]==='-'。不管怎么说都是为了解决这个问题?最好使用Number()函数

  • 问题内容: 我需要将JSONArray对象存储为字符串,然后检索该字符串并将其转换回JSONArray。 如果我做: 我会找回同一个物体吗? 我正在尝试将JSONArray存储在SQLite数据库中。 这就是我在看的东西。http://developer.android.com/reference/org/json/JSONArray.html#toString() 问题答案: 只要它是一个有效的

  • 该应用程序基于NETTY(这是一个需求)。 我的第一个想法是创建这样一个管道: (从解码到) (对)进行检查 (将编码为) (使用) 我怎样才能完成这项任务?避免对请求进行解码和重新编码会很好。 问候,马西米利亚诺

  • 问题内容: 我需要在两台机器之间发送一些变量的值,并打算使用套接字来实现。我使用md5哈希算法作为发送数据的校验和,以确保正确传输数据。要执行md5哈希算法,我必须将数据转换为字节。我想同时传递变量的名称及其值。因为我有很多变量,所以我使用字典。 所以我想将类似的东西转换为字节? 换句话说,我有一个字典,里面有很多不同的数据类型,包括列表,列表又有多种不同的数据类型,我想将其转换为字节。然后在接收

  • 我们有一个旧表,其中日期字段以多种格式存储在VARCHAR2中。现在我们计划: 1) 将这些数据存储在具有适当日期字段的视图中。 2) 还以单一一致的格式(如MM/DD/YYYY)存储这些内容。 这是为#1所做的:创建一个函数,以便它可以解析VARCHAR2并将其转换为不同格式的DATE,例如: 对于#2,我们仍然需要将上述两个日期转换为MM/DD/YYYY,其中一个已采用此格式,因此我们需要先转