https://github.com/horse-framework/horse-websocket
Websocket Server and Websocket Client for .NET Core projects
https://github.com/horse-framework/horse-websocket
client server websocket
Last synced: 3 months ago
JSON representation
Websocket Server and Websocket Client for .NET Core projects
- Host: GitHub
- URL: https://github.com/horse-framework/horse-websocket
- Owner: horse-framework
- License: apache-2.0
- Created: 2020-07-12T20:54:49.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-14T14:31:16.000Z (about 1 year ago)
- Last Synced: 2025-02-01T02:17:57.696Z (about 1 year ago)
- Topics: client, server, websocket
- Language: C#
- Homepage:
- Size: 386 KB
- Stars: 17
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Horse WebSocket
[](https://www.nuget.org/packages/Horse.WebSocket.Client)
[](https://www.nuget.org/packages/Horse.WebSocket.Server)
Horse WebSocket includes websocket server and websocket client. Websocket servers runs on Horse Server.
#### Basic WebSocket Server Example
```C#
IHost host = Host.CreateDefaultBuilder(args)
.UseHorseWebSocketServer((context, builder) =>
{
builder.UseModelProvider();
builder.AddTransientHandlers(typeof(Program));
builder.UsePort(888);
})
.Build();
host.Run();
```
#### Basic WebSocket Client Example
```C#
HorseWebSocket client = new HorseWebSocket();
client.MessageReceived += (c, m) => Console.WriteLine("# " + m);
client.Connected += c => Console.WriteLine("Connected");
client.Disconnected += c => Console.WriteLine("Disconnected");
client.Connect("wss://echo.websocket.org");
while (true)
{
string s = Console.ReadLine();
client.Send(s);
}
```
**Handler Implementation**
```C#
public class ModelAHandler : IWebSocketMessageHandler
{
public Task Handle(ModelA model, WebSocketMessage message, IHorseWebSocket client)
{
Console.WriteLine("Model A received: " + model.Value);
return Task.CompletedTask;
}
public Task OnError(Exception exception, ModelA model, WebSocketMessage message, IHorseWebSocket client)
{
throw new NotImplementedException();
}
}
```
**Model**
```C#
[ModelType("model-a")]
public class ModelA
{
[JsonProperty("v")]
public string Value { get; set; }
}
```