mirror of
https://github.com/DaKerboul/perun.git
synced 2026-08-09 17:05:39 +02:00
Shall fix the lag issue when connection is not available.
This commit is contained in:
@@ -30,12 +30,13 @@ Perun.ServerData = {}
|
|||||||
Perun.StatData = {}
|
Perun.StatData = {}
|
||||||
Perun.StatDataLastType = {}
|
Perun.StatDataLastType = {}
|
||||||
Perun.MissionHash=""
|
Perun.MissionHash=""
|
||||||
|
Perun.ReconnectTimeout = 30
|
||||||
Perun.lastSentStatus = 0
|
Perun.lastSentStatus = 0
|
||||||
Perun.lastSentMission = 0
|
Perun.lastSentMission = 0
|
||||||
Perun.lastSentKeepAlive = 0
|
Perun.lastSentKeepAlive = 0
|
||||||
Perun.lastConnectionError = 0
|
Perun.lastConnectionError = 0
|
||||||
Perun.lastReconnect = 0
|
Perun.lastReconnect = (-1) * Perun.ReconnectTimeout
|
||||||
Perun.SendRetries = 3
|
Perun.SendRetries = 2
|
||||||
Perun.RefreshKeepAlive = 3
|
Perun.RefreshKeepAlive = 3
|
||||||
Perun.JsonStatusLocation = lfs.writedir() .. Perun.JsonStatusLocation
|
Perun.JsonStatusLocation = lfs.writedir() .. Perun.JsonStatusLocation
|
||||||
Perun.socket = require("socket")
|
Perun.socket = require("socket")
|
||||||
@@ -293,8 +294,9 @@ Perun.ConnectToPerun = function ()
|
|||||||
else
|
else
|
||||||
-- Connected
|
-- Connected
|
||||||
Perun.AddLog("Success - connected to TCP server",2)
|
Perun.AddLog("Success - connected to TCP server",2)
|
||||||
Perun.lastReconnect = _now
|
|
||||||
end
|
end
|
||||||
|
local _now = DCS.getRealTime()
|
||||||
|
Perun.lastReconnect = _now
|
||||||
end
|
end
|
||||||
|
|
||||||
Perun.SendToPerun = function(data_id, data_package)
|
Perun.SendToPerun = function(data_id, data_package)
|
||||||
@@ -315,12 +317,15 @@ Perun.SendToPerun = function(data_id, data_package)
|
|||||||
local _dropped = true
|
local _dropped = true
|
||||||
|
|
||||||
-- Try to send a few times (defind in settings section)
|
-- Try to send a few times (defind in settings section)
|
||||||
|
local _now = DCS.getRealTime()
|
||||||
while _intStatus == nil and _intTries < Perun.SendRetries do
|
while _intStatus == nil and _intTries < Perun.SendRetries do
|
||||||
_intStatus, _err = Perun.TCP:send(_TCPFrame)
|
_intStatus, _err = Perun.TCP:send(_TCPFrame)
|
||||||
if _err then
|
if _err then
|
||||||
-- Failure, packet was not send
|
-- Failure, packet was not send
|
||||||
Perun.AddLog("Packed not send : " .. data_id .. " , error: " .. _err .. ", tries: " .. _intTries,2)
|
Perun.AddLog("Packed not send : " .. data_id .. " , error: " .. _err .. ", tries: " .. _intTries,2)
|
||||||
Perun.ConnectToPerun()
|
if _now > Perun.lastReconnect + Perun.ReconnectTimeout then
|
||||||
|
Perun.ConnectToPerun()
|
||||||
|
end
|
||||||
else
|
else
|
||||||
-- Succes, packet was send
|
-- Succes, packet was send
|
||||||
Perun.AddLog("Packet send : " .. data_id .. " , tries:" .. _intTries,2)
|
Perun.AddLog("Packet send : " .. data_id .. " , tries:" .. _intTries,2)
|
||||||
@@ -332,8 +337,7 @@ Perun.SendToPerun = function(data_id, data_package)
|
|||||||
if _dropped == true then
|
if _dropped == true then
|
||||||
-- Add information to log file and send chat message to all that Perun connection is broken
|
-- Add information to log file and send chat message to all that Perun connection is broken
|
||||||
Perun.AddLog("ERROR - packed dropped : " .. data_id,1)
|
Perun.AddLog("ERROR - packed dropped : " .. data_id,1)
|
||||||
local _now = DCS.getRealTime()
|
if _now > Perun.lastConnectionError + Perun.ReconnectTimeout then
|
||||||
if _now > Perun.lastConnectionError + 60 then
|
|
||||||
-- Informs all players that there is Peron error; below hack for DCS net.send_chat not working
|
-- Informs all players that there is Peron error; below hack for DCS net.send_chat not working
|
||||||
local _all_players = net.get_player_list()
|
local _all_players = net.get_player_list()
|
||||||
for PlayerIDIndex, _playerID in ipairs(_all_players) do
|
for PlayerIDIndex, _playerID in ipairs(_all_players) do
|
||||||
|
|||||||
Reference in New Issue
Block a user