https://github.com/charmy/centrifuge-csharp
🫡 Centrifuge C# Client
https://github.com/charmy/centrifuge-csharp
centrifuge client sdk sdk-csharp
Last synced: 6 months ago
JSON representation
🫡 Centrifuge C# Client
- Host: GitHub
- URL: https://github.com/charmy/centrifuge-csharp
- Owner: charmy
- License: mit
- Created: 2023-06-27T14:03:46.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-01T14:14:00.000Z (about 2 years ago)
- Last Synced: 2024-04-27T07:34:05.175Z (over 1 year ago)
- Topics: centrifuge, client, sdk, sdk-csharp
- Language: C#
- Homepage:
- Size: 74.2 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Centrifuge C# Client

This SDK provides a client to connect to Centrifugo
# ⚠️ Working in progress
- SDK is not completed yet.
- This library is translated from [centrifuge java sdk](https://github.com/centrifugal/centrifuge-java). It is not stable.
# Installation
```
dotnet add package Centrifuge --version 1.0.0
```# Platforms
* .NET Framework 4.8
* Unity 2022.3+ (Api .NET Framework)### TODO
- [ ] Code Refactor
- [ ] History
- [ ] Presence### Example
```cs
using System;
using System.Threading;
using Centrifuge;namespace Example
{
internal class Program
{
private static string TOKEN = "";public class TokenGetter : ConnectionTokenGetter
{
public override void GetConnectionToken(ConnectionTokenEvent e, TokenCallback cb)
{
cb(null, TOKEN);
}
}public class Listener : EventListener
{
public override void OnConnecting(Client client, ConnectingEvent e)
{
Console.WriteLine("onConnecting");
}public override void OnConnected(Client client, ConnectedEvent e)
{
Console.WriteLine("onConnected");
}public override void OnDisconnected(Client client, DisconnectedEvent e)
{
Console.WriteLine("onDisconnected");
}public override void OnError(Client client, ErrorEvent e)
{
Console.WriteLine("onError1" + e.Error);
}public override void OnMessage(Client client, MessageEvent e)
{
Console.WriteLine("onMessage");
}public override void OnSubscribed(Client client, ServerSubscribedEvent e)
{
Console.WriteLine("onSubscribed");
}public override void OnSubscribing(Client client, ServerSubscribingEvent e)
{
Console.WriteLine("onSubscribing");
}public override void OnUnsubscribed(Client client, ServerUnsubscribedEvent e)
{
Console.WriteLine("onUnsubscribed");
}public override void OnPublication(Client client, ServerPublicationEvent e)
{
Console.WriteLine("onPublication");
}public override void OnJoin(Client client, ServerJoinEvent e)
{
Console.WriteLine("onJoin");
}public override void OnLeave(Client client, ServerLeaveEvent e)
{
Console.WriteLine("onLeave");
}
}public class SubListener : SubscriptionEventListener
{
public override void OnPublication(Subscription sub, PublicationEvent e)
{
var d = System.Text.Encoding.UTF8.GetString(e.Data);
Console.WriteLine("onPublication" + d);
}public override void OnJoin(Subscription sub, JoinEvent e)
{
Console.WriteLine("onJoin");
}public override void OnLeave(Subscription sub, LeaveEvent e)
{
Console.WriteLine("onLeave");
}public override void OnSubscribed(Subscription sub, SubscribedEvent e)
{
Console.WriteLine("onSubscribed");
}public override void OnUnsubscribed(Subscription sub, UnsubscribedEvent e)
{
Console.WriteLine("onUnsubscribed");
}public override void OnSubscribing(Subscription sub, SubscribingEvent e)
{
Console.WriteLine("onSubscribing");
}public override void OnError(Subscription sub, SubscriptionErrorEvent e)
{
Console.WriteLine("onError" + e.Error);
}
}public static void Main(string[] args)
{
Options opts = new Options()
{
Token = TOKEN,
TokenGetter = new TokenGetter(),
};Client client = new Client("ws://localhost:8088/connection/websocket", opts, new Listener());
client.Connect();var sub = client.NewSubscription("message#0f63396b-3b29-4072-849b-a886ac08a5e2", new SubscriptionOptions(), new SubListener());
sub.Subscribe();Thread.Sleep(200000);
}
}
}
```