WebSocket的。获取与现有连接的连接

时间:2015-11-04 01:24:28

标签: javascript websocket

我正在使用websockets进行3D聊天的脚本。您开始聊天的每个小时,然后您必须单击“确定”以获取您的个人资料中的小时。所以我想制作一个脚本,可以检测盒子何时点击好。我可以在chrome开发人员工具上看到,当有一个新的小时时,我会从websocket中转发一条消息。

我想在javascript中执行此操作,因此我加载javascript以及加载网站时。那么我如何获得已经存在的与websockets的连接?

您可以在此图片上看到它提供了一个websocket enter image description here

如何将我的javascript与网站一起加载以获得该连接而不是新连接?

2 个答案:

答案 0 :(得分:2)

当WebSocket连接由创建它的代码创建时,它存储在Javascript变量中。您需要在创建webSocket连接的脚本中访问该变量。没有其他方法可以得到它。

您可以检查创建webSocket连接的脚本,并查看它存储webSocket对象的位置,以便查看是否可以访问该变量。

您的Javascript可以通过书签或浏览器扩展程序添加到页面中,或者显然可以通过编辑网页的原始来源(尽管我假设您在这种情况下无法执行此操作)。

答案 1 :(得分:0)

我需要访问由外部库创建的 WebSocket,因此我没有用于创建它的实际变量。幸运的是,当 WebSockets 更新时,它们会在 message 上触发一个 window 事件,您可以轻松地连接到该事件:

window.addEventListener('message', messageEventListener, false);

由于可能有多个 WebSocket 打开,您需要比较 origin 属性(它将是套接字连接到的 URI 的域,没有路径)。通过 WebSocket 发送的数据将位于事件的 data 属性中。像这样:

const messageEventListener = (e) => {
  if (e.origin === 'https://paygatewaway.example'
    && e.data.status 
    && e.data.status === 'paid'
  ) {
    // Handle change
  }
};