Как получить данные от сервера на SignalR?

343
12 декабря 2017, 17:03

Метод на сервере (Hub):

[HubName("RemoteNotepad")]
public class RemoteNotepadHub : Hub, IService
{
    /// <summary>
    /// The manager.
    /// </summary>
    private readonly IManager manager;
    /// <summary>
    /// Initializes a new instance of the <see cref="RemoteNotepadHub"/> class.
    /// </summary>
    public RemoteNotepadHub()
    {
        var userDalManager = new UserDalManager();
        var recordDalManager = new RecordDalManager();
        this.manager = new Manager(userDalManager, recordDalManager);
    }
    #region IServiceClient Members
    /// <inheritdoc />
    /// <summary>
    /// The system enter.
    /// </summary>
    /// <param name="userLogin">
    /// The user login.
    /// </param>
    /// <returns>
    /// The <see cref="T:System.Threading.Tasks.Task" />.
    /// </returns>
    [HubMethodName("SystemEnter")]
    public async Task<OperationStatusInfo> SystemEnter(UserLogin userLogin)
    {
        try
        {
            this.manager.SystemEnter(userLogin);
            return await Task.Run(
                       () => new OperationStatusInfo(OperationStatus.Success, "Success enter system", true));
        }
        catch (Exception e)
        {
            return await Task.Run(
                       () => new OperationStatusInfo(OperationStatus.Fail, e.Message, false));
        }
    }

Сам сервер запущен (в браузере переходит по адресу localhost:8080/signalr/hubs).

Для подключения использую Microsoft.AspNet.SignalR.Client

Попытка вызова метода сервера (Unit test):

    /// <summary>
    /// The service url.
    /// </summary>
    private const string ServiceUrl = "http://localhost:8080/";
    /// <summary>
    /// The hub connection.
    /// </summary>
    private HubConnection hubConnection;
    /// <summary>
    /// The hub proxy.
    /// </summary>
    private IHubProxy hubProxy;
    /// <summary>
    /// The test method.
    /// </summary>
    [Test]
    public void ConnectionTest()
    {
        this.hubConnection = new HubConnection(ServiceUrl);
        this.hubProxy = this.hubConnection.CreateHubProxy("RemoteNotepad");
        this.hubConnection.Start().Wait();
        var result = this.hubProxy.Invoke<OperationStatusInfo>("SystemEnter", new UserLogin("admin", "admin"));
        result.Wait();
        Assert.AreEqual(true, (bool)result.Result.AttachedObject);
    }

переводит выполнения теста в бесконечный цикл. В чем ошибка?

READ ALSO
c# клиент для asterisk [дубликат]

c# клиент для asterisk [дубликат]

Данный вопрос уже был задан и имеет решение:

250
C# implicit DataRow to class

C# implicit DataRow to class

Здравствуйте помогите конвертировать DataRow to class Car(impicit

301
C# WebServer, возвращающий контент сайта

C# WebServer, возвращающий контент сайта

Как с помощью HttpListener понять, когда веб-браузер клиента хочет от меня css файлик с определенным именем, а когда - js-ик или html-ку? Оперируйте словами...

258
Иерархия наследования интерфейсов

Иерархия наследования интерфейсов

Немного не понимаю, например есть

213