.NET SignalR Console Client demo

using Microsoft.AspNetCore.SignalR.Client;

HubConnection connection = new HubConnectionBuilder()
                .WithUrl("http://localhost:44394/hub/chat", options =>
                {
                    options.AccessTokenProvider = async () =>
                    {
                        var accessToken = await File.ReadAllTextAsync("accessToken.txt");
                        return accessToken;
                    };
                })
                .WithAutomaticReconnect()
                .Build();

connection.Closed += async (error) =>
{
    Console.WriteLine("Connection closed...");
    await Task.Delay(new Random().Next(0, 5) * 1000);
    await connection.StartAsync();
    Console.WriteLine("Connected to server successfully");
};
connection.Reconnecting += error =>
{
    if (connection.State == HubConnectionState.Reconnecting)
    {
        Console.WriteLine("Reconnecting...");
    }
    return Task.CompletedTask;
};
connection.Reconnected += str =>
{
    Console.WriteLine("Reconnect to server successfully...");
    return Task.CompletedTask;
};
connection.On<string, string>("ReceiveMessage", (user, message) =>
{
    Console.WriteLine($"ReceiveMessage from {user}: {message}");
});

await connection.StartAsync();
Console.WriteLine("Connected to server successfully");

ConsoleKeyInfo key = Console.ReadKey(true);
do
{
    key = Console.ReadKey();
} while (key.Key is not ConsoleKey.Q);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容