Я пытаюсь вызвать метод консольного приложения из контекста SignalR HUB, который не работает-
var hubContext = GlobalHost.ConnectionManager.GetHubContext<Hubsfile.MyHub>();
hubContext.Clients.All.SendControl(machine, code);
Это (другая функция ниже) работает нормально, так как клиент сам является веб-страницей (я думаю),
hubContext.Clients.All.registerCard (ip, data);
Но когда я пытаюсь вызвать метод из другого клиента (консольное приложение), Контекст концентратора не вызывает его.
Работает ли контекст Концентратора для клиентов вне приложения-концентратора.
Редактировать:
Метод в SignalR HUB:
public void SendControlKeys(string machine, string code)
{
Clients.All.SendControl(machine, code);
}
Метод в Консольном клиенте:
proxy.On<string, string>("SendControl", (ip, data) =>
{
Console.WriteLine("server called SendControl");
Console.WriteLine();
byte[] dataBytes = HexEncoding.GetBytes(data, out int i);
try
{
lock (Clients)
{
if (Clients.Count > 0)
{
foreach (KeyValuePair<string, StateObject> client in Clients)
{
if (isClientConnected(client.Value.workSocket))
{
if (client.Key == ip)
{
Send(client.Value.workSocket, dataBytes);
break;
}
}
}
}
}
}catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
});