terminalCode Example
WebSockets
Use WebSockets for real-time communication with external servers.
Basic Setup
CSHARP
public sealed class WebSocketClient : Component
{
[Property] public string ConnectionUri { get; set; } // wss://host.example:443/ws
public WebSocket Socket { get; set; }
protected override void OnStart()
{
Socket = new WebSocket();
Socket.OnMessageReceived += HandleMessageReceived;
_ = Connect();
}
private async Task Connect()
{
await Socket.Connect(ConnectionUri);
await SendMessage("Hello from s&box!");
}
private async Task SendMessage(string message)
{
await Socket.Send(message);
}
private void HandleMessageReceived(string message)
{
Log.Info($"Received: {message}");
}
protected override void OnDestroy()
{
Socket?.Dispose();
}
}With Auth Token
CSHARP
var token = await Sandbox.Services.Auth.GetToken("YourServiceName");
if (string.IsNullOrEmpty(token))
{
Log.Warning("No auth token available");
return;
}
var headers = new Dictionary<string, string>()
{
{ "Authorization", token }
};
await socket.Connect("wss://example.com/ws", headers);Common Use Cases
- Custom networking — External matchmaking, chat servers
- Persistent data — Cross-session player data
- Real-time services — Leaderboards, live events
- External APIs — Web service integration
Binary Messages
CSHARP
// Send binary data
byte[] data = ...;
await Socket.Send(data);
// Receive binary (in OnBinaryMessageReceived)
Socket.OnBinaryMessageReceived += (byte[] data) =>
{
ProcessData(data);
};
Was this helpful?