在Firefox/Chrome开发者工具中,是否有一种方法可以在连接后发送/编辑websocket消息?

19
我有一个Safari/Firefox/Chrome浏览器。我的浏览器有开发者工具。 是否有一种方法可以愉快地发送/编辑现有连接的websocket消息? 或者需要使用插件吗?
谢谢
2个回答

9
你可以通过在Chrome中打开控制台并写入queryObjects(WebSocket)来列出页面上的所有WebSocket连接。一段时间后,它应该会列出所有实例。 然后选择你想使用的那个连接,右键点击它,并选择“将对象存储为全局变量”。 这将创建一个新的变量,比如temp1,这样你就可以用temp1.send({websocket: 'message'})发送消息了。

Chrome console with found WebSockets


8

您可以获取websocket连接的实例,并进一步使用它来发送更多消息。

获取socket连接实例

您必须了解以下websocket连接建立的内容:

websocket = new WebSocket('your-ws-url-goes-here');

现在你可以使用websocket的实例,并且可以使用.send().close()
你的问题说明你想使用现有的连接的Websocket,你可以在源代码中查找套接字连接实例,并将其用于发送进一步的消息。
以下是一个玩耍示例:
你可以在http://websocket.org/echo.html这里与WebSocket及其实例一起玩耍。
请注意:
var wsUri = "wss://echo.websocket.org/";

并且具有函数

websocket = new WebSocket(wsUri);

所以您知道WebSocket已连接并在websocket中具有实例。

您可以打开devtool并键入websocket以查看所有选项。因此,在您的情况下,您需要找到连接实例,以便您可以操作它。

关于编辑现有消息

我找不到任何方法来编辑发送的消息,并且我认为不应该有这种方法。您可以发送新消息,因为早期的消息必须已经得到了回复。


5
这种方法只能创建到服务器的另一个WebSocket连接,不能重用现有的连接。提问者要求在现有连接中发送消息。 - adamczi
1
@adamczi 不,你可以获取页面已经使用的websocket实例的引用,并使用它。 - odinho - Velmont
16
获取 WebSocket 实例的步骤为:在开发者工具中选择“内存”选项卡,找到“堆转储”的选项并搜索“websocket”,展开对应结果,在其中右键点击一个实例并选择“存储为全局变量”。可能会有多个实例,需要确认选择正确的一个,可以查看“temp1.url”来判断。 - odinho - Velmont

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接