-
Notifications
You must be signed in to change notification settings - Fork 1
/
script.js
executable file
·129 lines (115 loc) · 3.91 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// fivem本身就是个浏览器套壳
/*
var ws_host = "hjdczy.top"
var ws_port = 2345
var ws;
var croodx;
var croody;
var croodz;
var speed ;
var inplane;
var playerserverid;
var playername;
let playerexists = {};
$(function(){
// console.log("init");
window.addEventListener('message', function(event) {
var item = event.data;
croodx = item.croodx;
croody = item.croody;
croodz = item.croodz;
speed = item.speed;
heading = item.heading;
vehiclemodel = item.vehiclemodel;
inplane = item.inplane;
playerserverid = item.playerserverid;
playername = item.playername;
}
);
function connectwebsocket (){
var ws = new WebSocket("wss://"+ws_host+":"+ws_port+"/ws");
//ws = new WebSocket(`${pl}://${ws_host}:${ws_port}/`);
ws.onopen = function(){
console.log("websocket connect success");
connected = true;
}
ws.onmessage = function(e){
// 接收到服务器查询玩家的请求
msg = JSON.parse(e.data);
// console.log("websocket message:"+msg);
var playersserverids = {};
for(var i in msg){
playersserverids[i] = msg[i];
}
// for (var i in playersserverids){
// console.log("serverid:"+playersserverids[i])
// }
//做NUI回调,把数据传给LUA
let promises = [];
for (let i in playersserverids){
let promise = fetch(`https://${GetParentResourceName()}/checkplayer`, {
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=utf-8',
},
body: JSON.stringify(playersserverids[i]),
}).then(function(response) {
return response.json();
}).then(function(data) {
playerexists[i] = data;
// console.log(i + ' '+ playersserverids[i] + ' ' +playerexists[i]);
});
promises.push(promise);
}
//所有请求都完成后,发送数据给服务器
Promise.all(promises).then(function(){
if (connected){
var data = {
type: 'checkothers',
playerexists:playerexists,
playerserverids:playersserverids
};
ws.send(JSON.stringify( data ));
}
});
}
ws.onclose = function(event){
console.log("websocket close, code: " + event.code + ", reason: " + event.reason);
// 重连
setTimeout(function() {
connectwebsocket();
}, 5000); // 5秒后尝试重连
};
ws.onerror = function(){
console.log("websocket error");
};
// 发送数据
let senddataid = setInterval(function(){
if(ws.readyState == 1){
var data = {
type: 'playerdata',
croodx:croodx,
croody:croody,
croodz:croodz,
speed:speed,
heading:heading,
vehiclemodel:vehiclemodel,
inplane:inplane,
playerserverid:playerserverid,
playername:playername
};
ws.send(JSON.stringify(data));
// console.log("playername:"+playername);
}
else{
clearInterval(senddataid);
}
},250);
}
connectwebsocket();
// 关闭窗口时主动关闭websocket
window.addEventListener('beforeunload', function(event) {
ws.close();
});
});
*/