socket
socket is a simplistic socket.io inspired networking singleton that combines RemoteEvents and UnreliableRemoteEvents into channels to keep your explorer clean and your code organized.
For a client → server interaction:
-- Server
local socket = require "path/to/socket"
-- Optionally register the event beforehand.
-- Passing in an optional boolean determines its reliability.
-- This defaults to true.
--
-- (reliable = true, unreliable = false)
socket:register("message", true)
-- Events are automaticlaly registered as reliable
-- when :on() or an emit method is called.
socket:on("message", function(player, message)
print(`{player.Name} sent a message: "{message}"`)
end)
-- Client
local socket = require "path/to/socket"
socket:emitServer("message", "Hello world!")
And for a server → client interaction:
-- Server
local socket = require "path/to/socket"
local players = game:GetService("Players"):GetPlayers()
-- socket supports firing one...
socket:emitClient("message", players[math.random(#players)], "Hello world!")
-- multiple...
socket:emitClients("message", {players[1], players[2], players[3]}, "Hello world!")
-- or all clients.
socket:emitAll("message", "Hello world!")
-- Client
local socket = require "path/to/socket"
socket:on("message", function(message)
print(`The server sent a message: "{message}"`)
end)
Happy networking!