【发布时间】:2015-07-04 21:59:11
【问题描述】:
我有一个与 rabbitmq 服务器通信的 spring 应用程序。 消息交换通过 STOMP 协议进行。 我的问题是为什么我的 STOMP 消息没有被解码。 我已经为它上传并安装了 STOMP 插件。 https://github.com/ficoos/wireshark-stomp-plugin (stomp.lua)
我仍然只看到我怀疑 UTF-8 编码的消息,它没有被正确地表示。 显示问题的图像
有没有一种方法可以让我准确地重新编码/剖析消息中的内容?
添加 2015 年 6 月 25 日:我发现我的答案,即 Web 套接字协议有一个称为“屏蔽密钥”的东西,它基本上表示从客户端到服务器的流量应该使用该随机屏蔽密钥值进行编码。据我了解,这样做是为了避免代理出现问题。现在我认为问题与wireshark实现有关,即wireshark正确解码了有效载荷,即有效载荷字段的明文部分可以在Unmask Payload字段中找到,但是当遵循TCP Streap时,UI很可能不需要取消屏蔽有效负载值但“有效负载”值,即应用屏蔽键的异或之前的值。 如果知道wireshark的人能证实这一点,我将不胜感激。因此,这意味着这是 Wireshark 中的错误或功能(我不确定)
https://www.rfc-editor.org/rfc/rfc6455#section-5.3
加法 J 七月
添加到示例跟踪文件的链接 https://yadi.sk/d/E1a6bPhfhfUAf
【问题讨论】:
-
根据规范,Stomp CONNECTED 框架没有消息体。您可以尝试在 Wireshark 中捕获 SEND 或 MESSAGE 帧(带有文本负载)吗?
-
我做了我正在将wireshark图片上传到上面的问题
-
在上图中是 MESSAGE 框架,我确实看到客户端发送到服务器的内容是乱码。有什么办法可以解码吗?我的意思是回复是可读的,我的意思是 {"content: "Hello, aaaaaaaasssss!"}
-
@mjn 任何想法为什么这不起作用?或者这可能已经按设计运行,即它应该是二进制的,尽管我认为 STOMP 是基于文本的协议
-
我是否正确理解粉红色的文本是您想要“解密”的内容?其实我只能猜测这是不属于STOMP会话的数据,而是属于WebSocket协议的数据。会不会是 Websocket 用前导/尾随信息包装了 STOMP 数据? (在这种情况下,我还会将 websocket 标签添加到问题中)
标签: wireshark stomp wireshark-dissector