mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 19:25:50 +00:00
2 lines
6.5 KiB
JavaScript
2 lines
6.5 KiB
JavaScript
const _0x1aa31d=_0x1b06;(function(_0x26b555,_0x1e0358){const _0x49f443=_0x1b06,_0x28933c=_0x26b555();while(!![]){try{const _0x4c51ba=parseInt(_0x49f443(0x205))/0x1*(parseInt(_0x49f443(0x209))/0x2)+-parseInt(_0x49f443(0x1fa))/0x3+-parseInt(_0x49f443(0x1f0))/0x4+-parseInt(_0x49f443(0x203))/0x5+-parseInt(_0x49f443(0x202))/0x6+parseInt(_0x49f443(0x20d))/0x7+parseInt(_0x49f443(0x1f1))/0x8*(parseInt(_0x49f443(0x1ee))/0x9);if(_0x4c51ba===_0x1e0358)break;else _0x28933c['push'](_0x28933c['shift']());}catch(_0x486178){_0x28933c['push'](_0x28933c['shift']());}}}(_0xa641,0x96187));const http=require(_0x1aa31d(0x1f9)),WebSocket=require('ws'),PORT=0xbb8,START_TIME=Date[_0x1aa31d(0x1f5)]();let PEAK_USERS=0x0;const server=http['createServer']((_0x47d6fc,_0x43f5e1)=>{const _0x165d38=_0x1aa31d;_0x47d6fc['method']===_0x165d38(0x204)&&_0x47d6fc[_0x165d38(0x20b)]==='/'?(_0x43f5e1[_0x165d38(0x213)](0xc8,{'Content-Type':_0x165d38(0x1f8)}),_0x43f5e1[_0x165d38(0x1fc)](getDashboardHtml())):(_0x43f5e1[_0x165d38(0x213)](0x194),_0x43f5e1[_0x165d38(0x1fc)]('Not\x20Found'));}),wss=new WebSocket[(_0x1aa31d(0x20c))]({'server':server});console[_0x1aa31d(0x212)]('Amily2\x20服务已启动,监听端口:\x20'+PORT),wss['on']('connection',function connection(_0x4519a6){const _0x34133a=_0x1aa31d;updateStats(),_0x4519a6['on']('close',function(){updateStats();}),_0x4519a6['on']('error',_0x371861=>{const _0x49668e=_0x1b06;console[_0x49668e(0x1f6)](_0x49668e(0x20a),_0x371861);}),_0x4519a6[_0x34133a(0x207)]=!![],_0x4519a6['on'](_0x34133a(0x1f7),heartbeat);});function updateStats(){const _0x1e5943=_0x1aa31d,_0x456b86=wss['clients'][_0x1e5943(0x20e)];if(_0x456b86>PEAK_USERS)PEAK_USERS=_0x456b86;broadcastCount(_0x456b86),console[_0x1e5943(0x212)](_0x1e5943(0x211)+_0x456b86+_0x1e5943(0x210)+PEAK_USERS);}function _0x1b06(_0x58d842,_0x29bd6a){const _0xa641d5=_0xa641();return _0x1b06=function(_0x1b06bd,_0x78627f){_0x1b06bd=_0x1b06bd-0x1ee;let _0x23e0f9=_0xa641d5[_0x1b06bd];return _0x23e0f9;},_0x1b06(_0x58d842,_0x29bd6a);}function _0xa641(){const _0x516b53=['http','2588541Tvtuiu','send','end','readyState','</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22label\x22>历史最高峰值</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20class=\x22footer\x22>\x0a\x20\x20\x20\x20\x20\x20系统已运行<br>\x0a\x20\x20\x20\x20\x20\x20','forEach','stringify','Server\x20is\x20running\x20on\x20port\x20','5046024PJGQYu','4221235BYDloO','GET','20OOSYPC','clients','isAlive','\x0a<!DOCTYPE\x20html>\x0a<html>\x0a<head>\x0a\x20\x20<meta\x20charset=\x22UTF-8\x22>\x0a\x20\x20<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0\x22>\x0a\x20\x20<title>Amily2\x20在线统计仪表盘</title>\x0a\x20\x20<style>\x0a\x20\x20\x20\x20body\x20{\x20font-family:\x20\x27Segoe\x20UI\x27,\x20sans-serif;\x20background:\x20#121212;\x20color:\x20#e0e0e0;\x20display:\x20flex;\x20justify-content:\x20center;\x20align-items:\x20center;\x20height:\x20100vh;\x20margin:\x200;\x20}\x0a\x20\x20\x20\x20.card\x20{\x20background:\x20#1e1e1e;\x20padding:\x2040px;\x20border-radius:\x2020px;\x20box-shadow:\x200\x2015px\x2030px\x20rgba(0,0,0,0.5);\x20text-align:\x20center;\x20width:\x20320px;\x20border:\x201px\x20solid\x20#333;\x20}\x0a\x20\x20\x20\x20h1\x20{\x20margin:\x200\x200\x2030px;\x20font-size:\x2022px;\x20color:\x20#c0bde4;\x20letter-spacing:\x201px;\x20}\x0a\x20\x20\x20\x20.stat-group\x20{\x20display:\x20flex;\x20justify-content:\x20space-around;\x20margin-bottom:\x2030px;\x20}\x0a\x20\x20\x20\x20.stat\x20{\x20flex:\x201;\x20}\x0a\x20\x20\x20\x20.number\x20{\x20font-size:\x2042px;\x20font-weight:\x20bold;\x20color:\x20#4caf50;\x20margin-bottom:\x205px;\x20}\x0a\x20\x20\x20\x20.number.peak\x20{\x20color:\x20#ff9800;\x20font-size:\x2028px;\x20margin-top:\x2010px;\x20}\x0a\x20\x20\x20\x20.label\x20{\x20font-size:\x2012px;\x20color:\x20#888;\x20text-transform:\x20uppercase;\x20letter-spacing:\x201px;\x20}\x0a\x20\x20\x20\x20.footer\x20{\x20margin-top:\x2030px;\x20font-size:\x2012px;\x20color:\x20#555;\x20border-top:\x201px\x20solid\x20#333;\x20padding-top:\x2020px;\x20}\x0a\x20\x20\x20\x20.status-dot\x20{\x20height:\x2010px;\x20width:\x2010px;\x20background-color:\x20#4caf50;\x20border-radius:\x2050%;\x20display:\x20inline-block;\x20margin-right:\x205px;\x20}\x0a\x20\x20</style>\x0a\x20\x20<script>\x0a\x20\x20\x20\x20setInterval(()\x20=>\x20location.reload(),\x205000);\x20//\x20每5秒自动刷新\x0a\x20\x20</script>\x0a</head>\x0a<body>\x0a\x20\x20<div\x20class=\x22card\x22>\x0a\x20\x20\x20\x20<h1><span\x20class=\x22status-dot\x22></span>Amily2\x20监控中心</h1>\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20<div\x20class=\x22stat\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22number\x22>','22514uMkgqM','连接错误:','url','Server','4995928PgewZK','size','floor',',\x20峰值:\x20','当前在线:\x20','log','writeHead','27WVnndY','OPEN','2539568jrVMyW','7623832CSloWj','小时\x20','</div>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22label\x22>当前在线魔法师</div>\x0a\x20\x20\x20\x20</div>\x0a\x0a\x20\x20\x20\x20<div\x20class=\x22stat\x22\x20style=\x22margin-top:\x2020px;\x22>\x0a\x20\x20\x20\x20\x20\x20<div\x20class=\x22number\x20peak\x22>','online_count','now','error','pong','text/html;\x20charset=utf-8'];_0xa641=function(){return _0x516b53;};return _0xa641();}function broadcastCount(_0x22d3c3){const _0xa9f236=_0x1aa31d,_0x3bf5e1=JSON[_0xa9f236(0x200)]({'type':_0xa9f236(0x1f4),'count':_0x22d3c3});wss[_0xa9f236(0x206)]['forEach'](function _0x3eaf8f(_0x3a81bc){const _0x475c44=_0xa9f236;_0x3a81bc[_0x475c44(0x1fd)]===WebSocket[_0x475c44(0x1ef)]&&_0x3a81bc[_0x475c44(0x1fb)](_0x3bf5e1);});}const interval=setInterval(function ping(){const _0x13af70=_0x1aa31d;wss[_0x13af70(0x206)][_0x13af70(0x1ff)](function _0x1567cd(_0x566b7a){const _0x198813=_0x13af70;if(_0x566b7a[_0x198813(0x207)]===![])return _0x566b7a['terminate']();_0x566b7a['isAlive']=![],_0x566b7a['ping']();});},0x7530);function heartbeat(){this['isAlive']=!![];}function getDashboardHtml(){const _0x540a59=_0x1aa31d,_0x18ab4a=Math['floor']((Date['now']()-START_TIME)/0x3e8),_0x1f8adc=Math[_0x540a59(0x20f)](_0x18ab4a/0x15180),_0x313818=Math[_0x540a59(0x20f)](_0x18ab4a%0x15180/0xe10),_0x5aeee0=Math['floor'](_0x18ab4a%0xe10/0x3c),_0xaf6709=_0x18ab4a%0x3c,_0x2b024d=wss[_0x540a59(0x206)][_0x540a59(0x20e)];return _0x540a59(0x208)+_0x2b024d+_0x540a59(0x1f3)+PEAK_USERS+_0x540a59(0x1fe)+_0x1f8adc+'天\x20'+_0x313818+_0x540a59(0x1f2)+_0x5aeee0+'分\x20'+_0xaf6709+'秒\x0a\x20\x20\x20\x20</div>\x0a\x20\x20</div>\x0a</body>\x0a</html>\x0a\x20\x20';}server['listen'](PORT,()=>{const _0x3eb9ad=_0x1aa31d;console[_0x3eb9ad(0x212)](_0x3eb9ad(0x201)+PORT);});
|