Skip to content

Commit

Permalink
reupdate v1.0.7
Browse files Browse the repository at this point in the history
  • Loading branch information
imezx committed Mar 13, 2024
1 parent 563af05 commit ae1754d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
16 changes: 10 additions & 6 deletions src/Index/Client/ClientProcess.luau
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
--!native
--!strict
--!optimize 2
local ClientProcess = {}

local RunService = game:GetService("RunService")
Expand All @@ -10,6 +11,7 @@ local Event = require(script.Parent.Parent.Event)
local Spawn = require(Util.Spawn)
local Key = require(Util.Key)
local RateLimit = require(Util.RateLimit)
local Buffer = require(Util.Buffer)

local clientRatelimit: Type.StoredRatelimit = {}
local clientQueue: Type.QueueMap = {}
Expand Down Expand Up @@ -99,15 +101,15 @@ function ClientProcess.start()
for Identifier: string, data: any in unreliableClientQueue do
if #data > 0 then
if clientRatelimit[Identifier](#data) then
UnreliableEvent:FireServer(Identifier, data)
UnreliableEvent:FireServer(Buffer.revert(Identifier), data)
end
table.clear(data)
end
end
for Identifier: string, data: any in clientQueue do
if #data > 0 then
if clientRatelimit[Identifier](#data) then
ReliableEvent:FireServer(Identifier, data)
ReliableEvent:FireServer(Buffer.revert(Identifier), data)
end
table.clear(data)
end
Expand Down Expand Up @@ -170,17 +172,18 @@ function ClientProcess.start()
end
for Identifier: string, requestsData in queueOutRequest[1] do
if #requestsData == 0 then continue end
RequestEvent:FireServer(Identifier, "\1", requestsData)
RequestEvent:FireServer(Buffer.revert(Identifier), "\1", requestsData)
table.clear(queueOutRequest[1][Identifier])
end
for Identifier: string, requestsData in queueOutRequest[2] do
if #requestsData == 0 then continue end
RequestEvent:FireServer(Identifier, "\0", requestsData)
RequestEvent:FireServer(Buffer.revert(Identifier), "\0", requestsData)
table.clear(queueOutRequest[2][Identifier])
end
end)
local function onClientNetworkReceive(Identifier: string, data: any)
local function onClientNetworkReceive(Identifier: any, data: any)
if not Identifier or not data then return end
Identifier = Buffer.convert(Identifier)
if not queueIn[Identifier] then
queueIn[Identifier] = {}
end
Expand All @@ -195,8 +198,9 @@ function ClientProcess.start()
end
ReliableEvent.OnClientEvent:Connect(onClientNetworkReceive)
UnreliableEvent.OnClientEvent:Connect(onClientNetworkReceive)
RequestEvent.OnClientEvent:Connect(function(Identifier: string, action: string, returnDatas)
RequestEvent.OnClientEvent:Connect(function(Identifier: any, action: string, returnDatas)
if not Identifier or not returnDatas then return end
Identifier = Buffer.convert(Identifier)
if action == "\1" then
table.insert(queueInRequest[1][Identifier], returnDatas)
else
Expand Down
17 changes: 11 additions & 6 deletions src/Index/Server/ServerProcess.luau
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
--!native
--!strict
--!optimize 2
local ServerProcess = {}

local RunService = game:GetService("RunService")
Expand All @@ -11,6 +12,7 @@ local Event = require(script.Parent.Parent.Event)
local Spawn = require(Util.Spawn)
local Key = require(Util.Key)
local RateLimit = require(Util.RateLimit)
local Buffer = require(Util.Buffer)

local serverQueue: Type.QueueMap = {}
local unreliableServerQueue: Type.QueueMap = {}
Expand Down Expand Up @@ -130,6 +132,7 @@ function ServerProcess.add(Identifier: string, originId: string, ratelimit: Type
end

function ServerProcess.addCallback(Identifier: string, key: string, callback)
print(serverCallback, Identifier)
serverCallback[Identifier][key] = callback
end

Expand All @@ -142,15 +145,15 @@ function ServerProcess.start()
for Identifier: string, players in unreliableServerQueue do
for player: Player, data: any in players do
if #data == 0 then continue end
UnreliableEvent:FireClient(player, Identifier, data)
UnreliableEvent:FireClient(player, Buffer.revert(Identifier), data)
table.clear(data)
end
end
for _, player: Player in ipairs(Players:GetPlayers()) do
if not queueOut[player] then continue end
for Identifier: string, data: any in queueOut[player] do
if #data == 0 then continue end
ReliableEvent:FireClient(player, Identifier, data)
ReliableEvent:FireClient(player, Buffer.revert(Identifier), data)
table.clear(data)
end
end
Expand Down Expand Up @@ -210,20 +213,21 @@ function ServerProcess.start()
end
for player: Player, requestsData: any in queueOutRequest[1][Identifier] do
if #requestsData == 0 then continue end
RequestEvent:FireClient(player, Identifier, "\1", requestsData)
RequestEvent:FireClient(player, Buffer.revert(Identifier), "\1", requestsData)
table.clear(requestsData)
end
for player: Player, toReturnDatas: any in queueOutRequest[2][Identifier] do
if #toReturnDatas == 0 then continue end
RequestEvent:FireClient(player, Identifier, "\0", toReturnDatas)
RequestEvent:FireClient(player, Buffer.revert(Identifier), "\0", toReturnDatas)
table.clear(toReturnDatas)
end
end
end
end
end)
local function onServerNetworkReceive(player: Player, Identifier: string, data: any)
local function onServerNetworkReceive(player: Player, Identifier: any, data: any)
if not Identifier or not data then return end
Identifier = Buffer.convert(Identifier)
if not serverQueue[Identifier] then
serverQueue[Identifier] = {}
end
Expand All @@ -237,8 +241,9 @@ function ServerProcess.start()
end
ReliableEvent.OnServerEvent:Connect(onServerNetworkReceive)
UnreliableEvent.OnServerEvent:Connect(onServerNetworkReceive)
RequestEvent.OnServerEvent:Connect(function(player: Player, Identifier: string, action: string, data: any)
RequestEvent.OnServerEvent:Connect(function(player: Player, Identifier: any, action: string, data: any)
if not Identifier or not data then return end
Identifier = Buffer.convert(Identifier)
if not queueInRequest[1][Identifier][player] then
queueInRequest[1][Identifier][player] = {}
queueInRequest[2][Identifier][player] = {}
Expand Down

0 comments on commit ae1754d

Please sign in to comment.