Как подключиться к разъему ASP.NET Core SignalR из приложения iOS с помощью Starscream?

Я пытаюсь создать простое приложение в реальном времени, но когда я подключаюсь, оно отключается через несколько секунд.

Я также предполагаю, что должен быть способ вызвать метод "Отправить", который я реализовал на сервере. Я знаю, что существует клиент SignalR для iOS "SignalRObjc", но это вызывает у меня проблемы.

Вопросы: Как мне вызвать определенный метод на сервере? Почему он отключается автоматически? Я сделал некоторые ошибки в реализации сервера или клиента?

// Сервер // ASP.NET Core SignalR

   public class ChatHub : Hub
   {
    public override Task OnConnectedAsync()
    {
        Debug.WriteLine("Connected cleint with ID :" + Context.ConnectionId);
        return base.OnConnectedAsync();
    }
    public void Send(string message)
    {
        Clients.All.InvokeAsync("New", message);
        Debug.WriteLine("Message invoked");
    }
    public override Task OnDisconnectedAsync(Exception exception)
    {   
        return base.OnDisconnectedAsync(exception);
    }
}

// iOS-приложение

   var socket = WebSocket(url: URL(string: "ws://localhost:50290/api/chat")!)

   func websocketDidConnect(socket: WebSocketClient) {
    print("Socket connected")
   }
   func websocketDidDisconnect(socket: WebSocketClient, error: Error?)        {
    print("Socket disconnected")
}
    func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
    print(text)
}
    func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
    print(data)
}

}

Я также устанавливаю socket.delegate = self в методе viewDidLoad и отправляю простое сообщение socket.write(string: "hello")

В методе socket.write есть блок завершения, который никогда не вызывается

Кроме того, метод получения сообщения никогда не вызывается, хотя я пытался что-то отправить с сервера.

0 ответов

Другие вопросы по тегам