第一次提交 游戏界面资源数据已更新

This commit is contained in:
2026-02-02 17:47:01 +08:00
commit de17737ca1
8152 changed files with 3079449 additions and 0 deletions

View File

@@ -0,0 +1,630 @@
function mylog(data) //log
{
// console.log(data);
};
function mylog2(data) //log
{
console.log(data);
};
var eylj=60*30*1000*1000;//恶意链接时间
var tcpinit = 10000;
var httpinit = 10000;
var constcount=0;
//var constcountinit=10;
var constcountinit=9989998;
constcount=constcountinit+tcpinit;
var rf = require("fs");
var data1 = rf.readFileSync("port.txt", "utf-8");
var obj = JSON.parse(data1);
var oo=obj[0];
var ll;
for (var i = 0; i < obj.length; i++) {
// var oo = obj[i];
// server_heihu(oo.tcpport, oo.httpport);
};
function $() {
return document.getElementById(arguments[0]);
}
var memo1=$('txtChatMain');
var title1=$('btnChatSend');
var countmemo1=0;
function clearmsg() {
memo1.value = '黑狐服务器2016'+ '\n';
};
function logmsg(msg) {
memo1.value += msg + '\n';
countmemo1++;
if (countmemo1>1000)
{
clearmsg();
}
};
function logtitle(msg) {
title1.value = msg ;
};
Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val) return i;
}
return - 1;
};
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
};
return index;
};
function server_findip(str) //查找ip
{
var j = 0;
var x;
for (var i = 0; i < str.length; i++) {
x = parseInt(str[i]);
if (!isNaN(x))
// if (str[i]=='1')
{
j = i;
break;
}
}
return str.substr(j, str.length - j);
}
//---------------------------
function clientleave(mode, conn, data) //tcp
{
webserver.sendText('@toleave1:' + conn.ljid);
};
function clientlogin(mode, conn, data) //tcp
{
webserver.sendText('@tologin1:' + conn.ljid + ':');
};
function httprev_todo(mode, conn, data) // http
{
webserver.sendText('@toserver' + ':' + conn.ljid + ':' + data);
};
function tcprev_todo(mode, conn, data) ////tcp
{
webserver.sendText('@toserver' + ':' + conn.ljid + ':' + conn.ip + ':' + data);
};
function myfind(str,cha,num){//0是第一次出现
var x=str.indexOf(cha);
for(var i=0;i<num;i++){
x=str.indexOf(cha,x+1);
}
return x;
}
function serverrev_fromdo(mode, conn, data) //tcp http
{
mylog("逻辑服务器处理返回:" + data);
var tou = data.substr(10, 5);
var pos2=myfind(data,':',1);//位置
if (pos2<5)
{
return;
}
var data1=data.substr(0, pos2);
var arrs=data1.split(":");
mylog("解析数据:" + data1);
var mod = 0;
if (tou == 'http_') {
mod = 1;
};
var ss = '@tooneone' + ':' + arrs[1] + ':';
ss = data.substr(ss.length, data.length - ss.length);
if (mod == 1) {
var response = lists_all_http[arrs[1]];
response.write(ss);
response.end();
lists_all_http[arrs[1]]=null;
//response.time;
//response.ljid;
return;
};
if ('@toclosed' == arrs[0]) {
mod = 2; //关闭连接
}
if (arrs[1]=="-1")//群发
{
//群发
broadcast(tcpserver,ss);
return;
}
var ids = arrs[1].split(",");
for (var u = 0; u < ids.length; u++) {
if (lists_all[ids[u]]) {
if (mod == 2) {
lists_all[ids[u]].close(2001); //主动关闭连接
} else {
lists_all[ids[u]].sendText(ss);
}
}
};
};
//============================================================================
//var http2 = require("http"); //提供web服务
var http = require("http"); //提供web服务
var url = require("url"); //解析GET请求
var query = require("querystring"); //解析POST请求
//http://127.0.0.1:4321/dfw.html?num=32&num1=13&type=add&name=dfw
//服务
var httpserver = function(request, response) {
try {
var url1 = request.url;
mylog(url1);
var exe = url1.substr(url1.length - 4);
if (exe == '.ico' || exe == '.jpg' || exe == '.png') {
mylog("exe " + exe);
response.writeHead(200, {
"Content-Type": "text/json",
"Access-Control-Allow-Origin": "*"
});
response.end();
return;
};
response.writeHead(200, {
"Content-Type": "text/json",
"Access-Control-Allow-Origin": "*"
});
if (request.method == "GET") {
response.ljid = 'http_GET' + httpinit;
} else {
response.ljid = 'http_POST' + httpinit;
};
response.time = new Date();
lists_all_http[response.ljid] = response;
httpinit++;
if (httpinit > 59999) {
httpinit = 10000;
}
//判断是GET/POST请求
if (request.method == "GET") {
var params = [];
params = url.parse(request.url).query;
mylog("===");
mylog(params);
//console.log(params.query);
mylog(request.url);
/*params['fruit'] = compute(params);
params['ljid'] = response.ljid;
var pathname = url.parse(request.url).pathname;
params['pathname'] = pathname;
params['url'] = request.url;
var arg1 = url.parse(request.url, true).query; //arg1 => {name:'a',id:'5'}
var str = JSON.stringify(arg1);
console.log("ljid " + response.ljid);
console.log("url " + request.url);
console.log("Request for1 " + str);
console.log("name0 = " + arg1.name);*/
//var name = query.parse(str).name; //name => a
//console.log("name = "+name);
if (webserver == null) {
response.write("webserve-服务器未工作" + url1);
response.end();
lists_all_http[response.ljid]=null;
} else {
httprev_todo('http', response, decodeURI(params));
}
} else {
var postdata = "";
request.addListener("data",
function(postchunk) {
postdata += postchunk;
});
//POST结束输出结果
request.addListener("end",
function() {
//var params = query.parse(postdata);
//params['fruit'] = compute(params);
//params['ljid'] = response.ljid;
mylog("收到:post " + postdata);
if (webserver == null) {
response.write("webserve-服务器未工作");
response.end();
lists_all_http[response.ljid]=null;
} else {
httprev_todo('http', response, postdata);
}
})
}
} catch(err) {
mylog2("httpserver:" + err);
}
};
//计算
var compute = function(params) {
switch (params['type']) {
case "add":
return parseFloat(params['num']) + parseFloat(params['num1']);
break;
case "subtract":
return parseFloat(params['num']) - parseFloat(params['num1']);
break;
case "multiplication":
return parseFloat(params['num']) * parseFloat(params['num1']);
break;
case "division":
return parseFloat(params['num']) / parseFloat(params['num1']);
break;
};
};
//开启服务在127.0.0.1:8080
//server_heihu(oo.tcpport, oo.httpport);
var httpport=oo.httpport;
var tcpport=oo.tcpport;
if (httpport) {
http.createServer(httpserver).listen(httpport);
mylog("http Server start!" + httpport);
logmsg("http Server start!" + httpport);
};
//http2.createServer(server).listen(4322);
var ws = require("nodejs-websocket");
mylog("开始建立连接...");
var game1 = null,
game2 = null,
game1Ready = false,
game2Ready = false;
var webserver = null;
var myid = 0;
if (tcpport > 0) {
var tcpserver = ws.createServer(function(conn) {
try {
var er=0;
// mylog(conn.socket);
// mylog(conn.socket.remoteAddress);
// mylog(conn.socket.remotePort);
//console.log("Headers对象");
//console.log(conn.headers);
var ip = server_findip(conn.socket.remoteAddress);
er=1;
conn.ip = ip;
var ok=-1;
for (var i1=0;i1<constcountinit;i1++)
{
tcpinit=tcpinit+1;
if (tcpinit > constcount) {
tcpinit = 10000;
}
mylog('tcpinit1:'+tcpinit);
if ((typeof(lists_all['tcp_' + tcpinit])=="undefined")||(lists_all['tcp_' + tcpinit]==null))
{
mylog(lists_all['tcp_' + tcpinit]);
mylog('tcpinit2:'+tcpinit);
ok=tcpinit;
break;
}
}
if (ok==-1)
{
mylog2('连接已经满了:'+tcpinit);
conn.isserver = -1;//没进队列
conn.close(1000);
return;
}
er=2;
conn.ljid = 'tcp_' + tcpinit;
conn.isserver = 0;
conn.contime=(new Date()).getTime();
conn.readpack=0;//还没有包
// lists.push(conn);
lists_all[conn.ljid]=conn;
mylog("New connection ---" + conn.ip+'/'+ conn.ljid+'/'+tcpinit);
er=3;
if (webserver) {
clientlogin('tcp', conn);
};
er=4;
conn.on("text",
function(str) {
try {
mylog("收到的信息为0:" + str);
this.readpack=1;//有包了
if (str === "dfw19770109") {
this.isserver = 1;
webserver = this;
// lists.remove(this);
lists_all[this.ljid]=null;
delete lists_all[this.ljid];
this.ljid = 'tcp_' + 0;
//this.sendText("webserver-dfw19770109");
return;
};
if (this == webserver) //处理完发来的
{
mylog("收到的信息为 从server来:" + str);
serverrev_fromdo('server', 'id', str);
} else
{
if (webserver == null) {
this.sendText("webserve-服务器未工作");
} else {
mylog("转发给逻辑服务器:" + str);
tcprev_todo('tcp', this, str);
}
}
}
catch(err) {
mylog2("text:" + err);
}
//lists_all_http[response.ljid]
// if (game1Ready && game2Ready) {
// game2.sendText(str);
// }
//
// conn.sendText(str)
});
conn.on("close",
function(code, reason) {
if (conn.isserver==-1)
{
mylog2('连接已经满了收包:');
return;
}
try {
if (this.isserver == 1) {
webserver = null;
mylog2("逻辑服务器关闭连接");
} else {
var index =0;// lists.remove(this);
if (index > -1) {
if (webserver) {
//if (this.readpack!=0)
{
clientleave('tcp', this);
}
};
};
//this.socket=null;
var i9=this.ljid;
lists_all[i9]=null;
delete lists_all[i9];
//conn=null;
mylog("关闭连接"+i9);
};
} catch(err) {
mylog2("close:" + err);
}
});
conn.on("error",
function(code, reason) {
// try {
// if (this.isserver == 1) {
// webserver = null;
// mylog("逻辑服务器错误关闭连接");
// } else {
// var index = lists.remove(this);
// if (index > -1) {
// if (webserver) {
// clientleave('tcp', this);
// };
// };
//this.socket=null;
// var i9=this.ljid;
// lists_all[i9]=null;
// delete lists_all[i9];
//this=null;
// mylog("异常关闭"+i9);
// };
// } catch(err) {
// mylog2("error:" + err);
// }
});
} catch(err) {
mylog2("newsocket:" + err+" er:"+er);
}
}).listen(tcpport);
mylog("tcp建立完毕:" + tcpport);
logmsg("tcp建立完毕:" + tcpport);
list_server=tcpserver.connections;
};
function broadcast(server, msg) {
try {
server.connections.forEach(function(conn) {
if (conn.readpack==1 && conn.isserver==0)
{conn.sendText(msg)};
})
} catch(err) {
mylog2("broadcast:" + err);
}
} //广播
function checktimeout(server) {
mylog("检测断线时间");
var mytime=(new Date()).getTime();//当前时间
try {
server.forEach(function(conn) {
if (conn.readpack==0 && conn.isserver==0)
{
if (mytime-conn.contime>eylj)
{ mylog2("Socket恶意链接");
conn.close(1001);
}
};
})
} catch(err) {
mylog2("checktimeout:" + err);
}
} //断线
var maxsocketcount=0;
var maxsocketcounttcp=0;
function dotime() {
try {
mylog("Socket群发1111");
if (webserver != null) {
// return;
}
list_server=tcpserver.connections;
var newDate=new Date();
if (maxsocketcounttcp<tcpserver.connections.length){maxsocketcounttcp=tcpserver.connections.length};
//if (maxsocketcount<lists.length){maxsocketcount=lists.length};
logtitle(newDate.toLocaleDateString()+"/ "+tcpserver.connections.length+"/"+maxsocketcounttcp+" "+tcpinit);
checktimeout(list_server);
//logtitle(newDate.toLocaleDateString()+"/"+(lists.length)+"/"+tcpserver.connections.length+" "+maxsocketcount+"/"+maxsocketcounttcp+" "+tcpinit);
/* var mytime=(new Date()).getTime();//当前时间
if (list_server.length > 0) {
mylog("群发,检测时间");
for (var i = 0; i < list_server.length; i++) {
if (list_server[i].readpack==0 && list_server[i].isserver==0)
{
if (mytime-list_server[i].contime>eylj)
{ mylog2("Socket恶意链接");
list_server[i].close(1001);
}
}
// lists[i].sendText(i + ' :message server! ' + lists.length);
}
} */
} catch(err) {
mylog2("dotime:" + err);
}
};
if (tcpport > 0) {
var interval = setInterval(dotime, 6000);
};
// var lists = [];
var list_server=[];
var lists_all = {};
var lists_all_http = {};
function min_now()
{
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + 1;
var strDate = date.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds();
return currentdate;
}
var newDate = new Date();
logmsg(newDate.toLocaleDateString());
logmsg(min_now());
logmsg(nw.App.manifest.name);
var path = require('path');
var nwPath = process.execPath;
var nwDir = path.dirname(nwPath);
logmsg(nwDir);
//server_heihu(5414,4321);
//server_heihu(5415,4322);