Как подключиться к Laravel WebSocket с клиента Xamarin Forms

у меня есть сервер На Laravel в котором я реализовал библиотеку Laravel WebSocet. Запускаю команду laravel websocket: serve, стартует все нормально, самое важное что у меня не получается это подключится с клиента в XamarinForms я использую для этого библиотеку SocketIOClient

Вот мой код

public async Task connectAsync()
{
    Console.OutputEncoding = Encoding.UTF8;
    Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
    var uri = new Uri("ws://192.168.0.105:6001");

    var socket = new SocketIO(uri, new SocketIOOptions
    {
        Query = new Dictionary<string, string>
        {
             {"APP_NAME", "messager" },
             {"PUSHER_APP_KEY", "ABCDEFG" },
             {"PUSHER_APP_ID", "1234" },
             {"PUSHER_APP_SECRET", "HIJKLMNOP" },
             {"enabledTransports", "ws" },
             {"PUSHER_APP_CLUSTER", "mt1" },
             { "wsPort","6001"},
             {"wsHost","ws://192.168.0.105:6001" }
         }
    });

    socket.OnConnected += Socket_OnConnected;
    socket.OnPing += Socket_OnPing;
    socket.OnPong += Socket_OnPong;
    socket.OnDisconnected += Socket_OnDisconnected;
    socket.OnReconnectAttempt += Socket_OnReconnecting;

    try
    {
        await socket.ConnectAsync();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
        throw;
    }

    socket.On("event-name", response =>
    {
        Console.WriteLine($"server: {response}");
    });

    Console.ReadLine();
}

private static async void Socket_OnConnected(object sender, EventArgs e)
{
    Console.WriteLine("Socket_OnConnected");
    var socket = sender as SocketIO;

    await socket.EmitAsync("subscribe", new
    {
        channel = "channelName",
        auth = ""
    });
}

private static void Socket_OnPing(object sender, EventArgs e)
{
    Console.WriteLine("Ping");
}

private static void Socket_OnPong(object sender, TimeSpan e)
{
    Console.WriteLine("Pong: " + e.TotalMilliseconds);
}

private static void Socket_OnDisconnected(object sender, string e)
{
    Console.WriteLine("disconnect: " + e);
}

private static void Socket_OnReconnecting(object sender, int e)
{
    Console.WriteLine($"Reconnecting: attempt = {e}");
}

Ответы (1 шт):

Автор решения: Данил Струченков

Оказалось что библиотека устарела, я воспользовался библиотекой System.Net.WebSockets.Client. И указал другую ссылку, оказалось что LaravelWebSocket в связке С Pusher формировал ключ который надо было указать в ссылке,/app/ABCDEFG Эту часть пути надо было дописать в итоге получалась целая ссылка ws://192.168.0.105:6001/app/ABCDEFG Где ABCDEFG ключ который вы создали при помощи Pusher

Вот здесь можно посмотреть как ставить LaravelWebSocket https://www.youtube.com/watch?v=pIGy7-7gGXI&ab_channel=DevMarketer

Вот Код

ClientWebSocket client = new ClientWebSocket();

public ChatViewModel()
{
    ConnectToServerAsync();
}

async void ConnectToServerAsync()
{
    await client.ConnectAsync(new Uri("ws://192.168.0.105:6001/app/ABCDEFG"), CancellationToken.None);
    var data = "Helo";
    var encoder = Encoding.UTF8.GetBytes(data);
    var buffer = new ArraySegment<Byte>(encoder, 0, encoder.Length);
    await client.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
    //client.Abort();
}
→ Ссылка