Javascript 如何查找和替换websocket?

Javascript 如何查找和替换websocket?,javascript,websocket,firebug,greasemonkey,Javascript,Websocket,Firebug,Greasemonkey,我对javascript相当陌生,我几乎整天都在浏览这个脚本,看看是否有一种方法可以嗅探websocket流量以进行调试和研究,或者用我自己的方法简单地替换websocket 我尝试过用Chrome和fiddler进行过滤,所有的东西都被隐藏起来了。Wireshark似乎抓住了两人都找不到的东西,但至少对我来说是jibberish,因为我不熟悉hex 然而,我真的很想知道是否有可能在javascript中扩展Websocket这样的东西,比如说当它使用Greasemonkey这样的东西创建时,我

我对javascript相当陌生,我几乎整天都在浏览这个脚本,看看是否有一种方法可以嗅探websocket流量以进行调试和研究,或者用我自己的方法简单地替换websocket

我尝试过用Chrome和fiddler进行过滤,所有的东西都被隐藏起来了。Wireshark似乎抓住了两人都找不到的东西,但至少对我来说是jibberish,因为我不熟悉hex

然而,我真的很想知道是否有可能在javascript中扩展Websocket这样的东西,比如说当它使用Greasemonkey这样的东西创建时,我可以“扩展”它,这样它可以继续做它应该做的事情,但也做额外的工作

例如,是否可以在say Greasemonkey中扩展以下websocket,以便在消息(evt)上继续写入屏幕,然后我可以添加一个警报(消息);??这比观察交通状况更可取。注意:我无法更改源文件

Google Chrome没有识别像亚特兰蒂斯之龙这样的游戏的网站websocket。这些动作是ajax帖子,但聊天是一个可以在flash参数中找到的websocket

<!DOCTYPE html>

 <meta charset="utf-8" />

<title>WebSocket Test</title>

<script language="javascript" type="text/javascript">

  var wsUri = "ws://echo.websocket.org/";
  var output;

  function init()
  {
    output = document.getElementById("output");
    testWebSocket();
  }

  function testWebSocket()
  {
    websocket = new WebSocket(wsUri);
    websocket.onopen = function(evt) { onOpen(evt) };
    websocket.onclose = function(evt) { onClose(evt) };
    websocket.onmessage = function(evt) { onMessage(evt) };
    websocket.onerror = function(evt) { onError(evt) };
  }

  function onOpen(evt)
  {
    writeToScreen("CONNECTED");
    doSend("WebSocket rocks");
  }

  function onClose(evt)
  {
    writeToScreen("DISCONNECTED");

  }


  function onMessage(evt)

  {

    writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');

    websocket.close();

  }



  function onError(evt)

  {

    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);

  }



  function doSend(message)

  {

    writeToScreen("SENT: " + message); 

    websocket.send(message);

  }


  function writeToScreen(message)

  {

    var pre = document.createElement("p");

    pre.style.wordWrap = "break-word";

    pre.innerHTML = message;

    output.appendChild(pre);

  }


  window.addEventListener("load", init, false);


</script>


<h2>WebSocket Test</h2>


<div id="output"></div>


</html>

网袋试验
var wsUri=“ws://echo.websocket.org/”;
var输出;
函数init()
{
输出=document.getElementById(“输出”);
testWebSocket();
}
函数testWebSocket()
{
websocket=新的websocket(wsUri);
websocket.onopen=函数(evt){onopen(evt)};
websocket.onclose=函数(evt){onclose(evt)};
websocket.onmessage=函数(evt){onmessage(evt)};
websocket.onerror=函数(evt){onerror(evt)};
}
功能开启(evt)
{
写屏(“连接”);
doSend(“网岩”);
}
函数onClose(evt)
{
写屏(“断开”);
}
消息函数(evt)
{
writeToScreen('响应:'+evt.data+'');
websocket.close();
}
函数onError(evt)
{
writeToScreen('错误:'+evt.data);
}
函数doSend(消息)
{
writeToScreen(“已发送:+消息”);
发送(消息);
}
功能写入屏幕(消息)
{
var pre=document.createElement(“p”);
pre.style.wordWrap=“断开单词”;
pre.innerHTML=消息;
输出.appendChild(pre);
}
addEventListener(“加载”,init,false);
网袋试验
我在stackoverflow中发现了这个,我能用websocket替换日期吗

Date = function (Date) { return function () { var date = clockwork.instantiate(Date, arguments); var args = arguments.length; var arg = arguments[0]; if ((args === 3 || args == 6) && arg < 100 && arg >= 0) date.setFullYear(arg); return date; } }(Date);
Date=function(Date){return function(){var Date=clockwork.instantiate(Date,arguments);var args=arguments.length;var arg=arguments[0];if((args==3 | | args==6)&&arg<100&&arg>=0)Date.setFullYear(arg);return Date;}(Date);

。使用Greasemonkey,您可能可以通过在页面加载之前重写构造函数来拦截页面的WebSocket。(没有试过)Jacek我感谢你的回复,但这不是重复的。是的,我对嗅探流量很好奇,但是我也想知道是否有可能用javascript扩展websocket,这样它可以继续做它应该做的事情,但也可以做额外的任务。@AlanHergert首先,我们在关闭时不会问问问问题的人,它只是不可伸缩。第二,如果你觉得你的问题不应该因为任何原因而被关闭,你应该a)提醒版主注意,b)发布到或c)评论@版主。你所不做的是编辑你的文章,包括元评论。请以后不要这样做。@casperOne如果我问了不同的问题或提供了不同的措辞,我应该继续编辑这个问题,还是有办法替换它,或者我可以发布一个新的问题来鼓励回答,因为这个问题只为我提供了一场摔跤比赛。感谢您致力于保持社区的活跃,并为改善我的体验提供一些指导