42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
const Game = require("../Game/Game");
|
|
const { players } = Game;
|
|
|
|
const extractBehaviourFeatures = require("../Utility/extractBehaviourFeatures");
|
|
|
|
// const NORMAL_CLOSE_CODES = [0, 1, 2];
|
|
|
|
module.exports = function (ws, code, message) {
|
|
if (code === 1337) return;
|
|
|
|
const player = players[ws.accountID];
|
|
if (!player) {
|
|
ws.isInterrupted = true;
|
|
delete socket.sockets[ws.id];
|
|
|
|
return;
|
|
};
|
|
|
|
const playerActions = global.actions[player.id];
|
|
const features = extractBehaviourFeatures(playerActions);
|
|
|
|
delete global.actions[player.id];
|
|
|
|
if (features) {
|
|
features.playerID = player.id;
|
|
features.timestampStart = new Date(ws.connectedAt);
|
|
|
|
global.StatisticsWorker.postMessage({
|
|
id: 2,
|
|
data: features
|
|
});
|
|
};
|
|
|
|
player.inDistance = {};
|
|
player.isAvailable = false;
|
|
player.hasUnexpectedlyLeft = true;
|
|
|
|
const individualPackets = player.map.networkPacketsInvidiual[player.id];
|
|
if (individualPackets) individualPackets.length = 0;
|
|
console.info("close event", performance.now());
|
|
delete socket.sockets[ws.id];
|
|
}; |