Socket.IOデータトランスポートを介してサイトから特定のメッセージを受信したときにアラートをポップアップするGreasemonkeyスクリプトを作成したいと思います。問題のサイトはbittrivia.comであり、Firefox Webコンソールで遊んでいると、微調整する必要のあるオブジェクトが見つかりましたが、期待した結果が得られません。質問が更新されるたびにアラートを出したいので(フリープレイには制限があるため、単純なタイマーでは不十分です)、質問の合間にいくつかの作業を行うことができます。これは私がこれまでに持っているものですが、コンソールに出力されたメッセージは表示されません。
// ==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));
}
});