使用Socket.IO在站点上使用Greasemonkey添加警报

时间:2013-01-09 04:25:36

标签: javascript socket.io greasemonkey

我想创建一个Greasemonkey脚本,当通过它的Socket.IO数据传输从站点收到特定消息时,该脚本将弹出警报。有问题的网站是bittrivia.com并使用Firefox网络控制台我发现了我需要调整的对象,但我没有得到预期的结果。我想在问题更新时让它保持警觉(因为免费游戏有限制,简单的计时器是不够的),所以我可以在两个问题之间做一些工作。这是我到目前为止,但我从来没有看到任何消息打印到控制台。

// ==UserScript==
// @name    BitTrivia Question Alerts
// @include https://www.bittrivia.com/*
// @require http://userscripts.org/scripts/source/100842.user.js
// @run-at  window-load
// ==/UserScript==

contentEval(function() {
    // Not sure if it's a timing issue, so try waiting for it to become available.
    function whenAvailable(callback) {
        window.setTimeout(function() {
            if (undefined === io.sockets)
                whenAvailable(callback);
            else  callback();
        }, 100);
    }
    whenAvailable(main);

    function main() {
        var socket = io.sockets['https://s1.bittrivia.com:80'];
        console.log(socket);
        socket.on('message', onMessage);
    }

    function onMessage (packet) {
        console.log(packet);
        var c = BISON.decode(packet);
        console.log(JSON.stringify(c));
    }
});

0 个答案:

没有答案