https://github.com/charmy/centrifuge-csharp
🫡 Centrifuge C# Client
https://github.com/charmy/centrifuge-csharp
centrifuge client sdk sdk-csharp
Last synced: about 1 year 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 (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-01T14:14:00.000Z (almost 3 years ago)
- Last Synced: 2024-04-27T07:34:05.175Z (about 2 years 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);
}
}
}
```