Skip to content

wsocket-io/sdk-pascal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wSocket SDK for Pascal / Delphi

Official Pascal/Delphi SDK for wSocket — realtime pub/sub, presence, history, and push notifications.

GitHub Release License: MIT

Installation

Delphi / Lazarus

Copy src/WSocketIO.pas to your project and add it to your uses clause:

uses WSocketIO;

Boss (Delphi Package Manager)

boss install wsocket-io/sdk-pascal

Quick Start

uses WSocketIO;

var
  Client: TWSocketClient;
  Channel: TWSocketChannel;
begin
  Client := TWSocketClient.Create('wss://node00.wsocket.online', 'your-api-key');
  
  Client.OnConnect := procedure
  begin
    WriteLn('Connected!');
  end;
  
  Client.Connect;

  Channel := Client.PubSub.Channel('chat');

  Channel.Subscribe(procedure(const Data: string; const Meta: TMessageMeta)
  begin
    WriteLn('Received: ', Data);
  end);

  Channel.Publish('{"text": "Hello from Pascal!"}');
end;

Presence

var
  Channel: TWSocketChannel;
begin
  Channel := Client.PubSub.Channel('room');

  Channel.Presence.Enter('{"name": "Alice"}');

  Channel.Presence.OnEnter := procedure(const Member: TPresenceMember)
  begin
    WriteLn(Member.ClientId, ' entered');
  end;

  Channel.Presence.OnLeave := procedure(const Member: TPresenceMember)
  begin
    WriteLn(Member.ClientId, ' left');
  end;

  Channel.Presence.Get;
end;

History

Channel.History(50);
Channel.OnHistory := procedure(const Result: THistoryResult)
var
  Msg: THistoryMessage;
begin
  for Msg in Result.Messages do
    WriteLn(Msg.PublisherId, ': ', Msg.Data);
end;

Push Notifications

var
  Push: TWSocketPush;
begin
  Push := TWSocketPush.Create('https://node00.wsocket.online', 'secret', 'app1');

  Push.RegisterFCM('device-token', 'user-123');
  Push.SendToMember('user-123', '{"title":"Hello","body":"World"}');
  Push.Broadcast('{"title":"News","body":"Update available"}');
end;

Requirements

  • Delphi 10.3+ or Free Pascal 3.2+
  • Indy (TIdHTTP) or Synapse for HTTP/WebSocket

License

MIT

About

wSocket.io pascal SDK

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages