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

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,119 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta name="viewport" content="width=device-width,initial-scale=1 user-scalable=0"/>
<title>黑狐服务器</title>
</head>
<body>
<h1>黑狐服务器 2016</h1>
<div id="divChat">
<textarea name="txtChatMain" id="txtChatMain" class="txtarea"></textarea>
<!-- Inputs are disabled by default -->
<input type="button" name="btnChatSend" id="btnChatSend" value="清除" onClick="clearmsg();" class="btn" />
</div>
<style type='text/css'>
div#divChat { width:30em; }
textarea.txtarea { float:left; width: 50em; height: 30em;}
input.txt { float:left; display: inline; width: 26em; }
input.btn { float:left; display: inline; width: 26em; }
</style>
<script src="server/servernet.js" type="text/javascript"></script>
<script>
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);
}
var ii="::fff:59.22.222";
ii=server_findip(ii);
//alert(ii);
/*var rf=require("fs");
var data1=rf.readFileSync("test.txt","utf-8");
//var obj={}
//obj.dfw=123;
var jj=[];
jj[0]={};
jj[0].dfw="123";
var last=JSON.stringify(jj);
console.log(last);
var obj =JSON.parse(data1);
console.log('====:'+data1+' dfw='+obj[0].dfw);
*/
var hhhhhhhhh=0;
function $() {
return document.getElementById(arguments[0]);
}
function logMsg(msg) {
$('txtChatMain').value += msg + '\n';
hhhhhhhhh++;
if (hhhhhhhhh>1000)
{
clearmsg();
}
}
function logmsg(msg) {
$('txtChatMain').value += msg + '\n';
hhhhhhhhh++;
if (hhhhhhhhh>1000)
{
clearmsg();
}
};
function clearmsg() {
$('txtChatMain').value = '黑狐服务器2016'+ '\n';
};
logMsg('黑狐服务器');
/* document.write(process.version);
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
*/
</script>.
</body>
</html>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta name="viewport" content="width=device-width,initial-scale=1 user-scalable=0"/>
<title>黑狐服务器</title>
</head>
<body>
<script src="server/servernet_okok.js" type="text/javascript"></script>
<h1>黑狐服务器 2016</h1>
<div id="divChat">
<textarea name="txtChatMain" id="txtChatMain" class="txtarea"></textarea>
<!-- Inputs are disabled by default -->
<input type="button" name="btnChatSend" id="btnChatSend" value="清除" onClick="clearmsg();" class="btn" />
</div>
<style type='text/css'>
div#divChat { width:30em; }
textarea.txtarea { float:left; width: 50em; height: 30em;}
input.txt { float:left; display: inline; width: 26em; }
input.btn { float:left; display: inline; width: 4em; }
</style>
<script>
/*var rf=require("fs");
var data1=rf.readFileSync("test.txt","utf-8");
//var obj={}
//obj.dfw=123;
var jj=[];
jj[0]={};
jj[0].dfw="123";
var last=JSON.stringify(jj);
console.log(last);
var obj =JSON.parse(data1);
console.log('====:'+data1+' dfw='+obj[0].dfw);
*/
var hhhhhhhhh=0;
function $() {
return document.getElementById(arguments[0]);
}
function logMsg(msg) {
$('txtChatMain').value += msg + '\n';
hhhhhhhhh++;
if (hhhhhhhhh>1000)
{
clearmsg();
}
}
function logmsg(msg) {
$('txtChatMain').value += msg + '\n';
hhhhhhhhh++;
if (hhhhhhhhh>1000)
{
clearmsg();
}
};
function clearmsg() {
$('txtChatMain').value = '黑狐服务器2016'+ '\n';
};
logMsg('黑狐服务器');
/* document.write(process.version);
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
*/
</script>.
</body>
</html>

View File

@@ -0,0 +1,16 @@
{
"name": "test",
"main": "index.html",
"single-instance": false,
"window": {
"debug": true,
"toolbar": true,
"width": 800,
"show": true,
"height": 800
},
"dependencies": {
"nodejs-websocket": "^1.6.0",
"socket.io": "^1.4.8"
}
}

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);

View File

@@ -0,0 +1,574 @@
function mylog(data) //log
{
// console.log(data);
};
function mylog2(data) //log
{
console.log(data);
};
var eylj=60*1000*30;//恶意链接时间
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[1]) {
mod = 2; //关闭连接
}
if (arrs[1]=="-1")//群发
{
//群发
broadcast(httpserver,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 > 99999) {
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);
};
//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 {
// mylog(conn.socket);
// mylog(conn.socket.remoteAddress);
// mylog(conn.socket.remotePort);
//console.log("Headers对象");
//console.log(conn.headers);
var er=0;
var ip = server_findip(conn.socket.remoteAddress);
conn.ip = ip;
er=1;
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);
};
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;
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];
//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);
}
}).listen(tcpport);
mylog("Socket建立完毕:" + tcpport);
};
function broadcast(server, msg) {
try {
server.connections.forEach(function(conn) {
if (conn.readpack==1)
{conn.sendText(msg)};
})
} catch(err) {
mylog2("broadcast:" + err);
}
} //广播
var maxsocketcount=0;
var maxsocketcounttcp=0;
function dotime() {
try {
mylog("Socket群发1111");
if (webserver != null) {
// return;
}
var newDate=new Date();
if (maxsocketcounttcp<tcpserver.connections.length){maxsocketcounttcp=tcpserver.connections.length};
if (maxsocketcount<lists.length){maxsocketcount=lists.length};
logtitle(newDate.toLocaleDateString()+"/"+(lists.length)+"/"+tcpserver.connections.length+" "+maxsocketcount+"/"+maxsocketcounttcp+" "+tcpinit);
var mytime=(new Date()).getTime();//当前时间
if (lists.length > 0) {
mylog("群发,检测时间");
for (var i = 0; i < lists.length; i++) {
if (lists[i].readpack==0)
{
if (mytime-lists[i].contime>eylj)
{ mylog2("Socket恶意链接");
lists[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 lists_all = {};
var lists_all_http = {};
var newDate = new Date();
logmsg(newDate.toLocaleDateString());
//server_heihu(5414,4321);
//server_heihu(5415,4322);

View File

@@ -0,0 +1 @@
["dfw":"123"]

View File

@@ -0,0 +1,18 @@
关于"菜小二"项目战略合作意向书
本着长期战略合作,共同承担风险,资源共享,优势互补的原则。
天盛集团与绿佳园"菜小二"项目项目达成如下共识。
一,项目定义
"菜小二"项目,将打造江西首个,连接农批,分拣,菜场,菜贩,配送,及其它第三社会资源共享生态的智慧菜篮子工程。
二,双方责任分工
1绿佳园负责整个生态的线下资源整合落地优化管理。保证产品的品质和价格优势 。
2天盛集团负责整个生态的线上资源整合推广客服。配合线下业务完成生态各环节的内部管理系统搭建。
并负责把支付宝口碑商户资源导入生态。
三,合作模式
本次合作不限于"菜小二"项目。
1项目股份比例 5:5
2项目成本各自承担
3项目收益5:5
4项目权线下环节绿佳园拥有决议权
项目权线上环节,天盛集团拥有决议权
5项目融资 两家作为一致行动人,共同同比例稀释股份。
6根据需要双方协商按项目比例成立新公司。

View File

@@ -0,0 +1 @@
copy /b E:\dfw\nodejs\nwjs-sdk-v0.15.2-win-ia32\nw.exe test.nw test.exe