SignalR - вызов метода класса Hub (представлен в отдельном проекте MVC) из кода на стороне сервера
Я прочитал некоторые уроки SignalR. Чтобы реализовать SignalR в моем существующем приложении для решения Asp.Net, я сделал следующее:
Я создал отдельный проект MVC 4 и создал класс Hub вместе с некоторыми методами, чтобы его можно было вызывать из любого другого проекта / клиента MVC, присутствующего в существующем решении, что означает, что я просто хотел бы использовать его в качестве службы.
Но теперь у меня есть два вопроса:
Как я могу назвать это из какого-то другого проекта MVC. Будет ли это так же, как упомянуто в руководствах, например, добавление необходимых файлов сценариев в заголовке моей страницы.cshtml и использование сценария js, как показано ниже:
var hub = $.connection.; //а потом
hub.server.send("некоторые аргументы");
Я хочу также вызывать код Hub непосредственно из кода на стороне сервера. Делал это раньше, когда я использовал SuperSocket. Хотел бы сделать такой же подход, используя SignalR. Как мне это сделать?
Если вы ответите, пожалуйста, дайте несколько примеров кода. Большое спасибо.
1 ответ
Здесь приведен пример кода для вызова клиентских методов извне класса Hub (но внутри приложения). По сути, вы используете ConnectionManager для вызова клиентов хаба.
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.All.myClientMethod(myValue);
Чтобы вызвать это из-за пределов вашего приложения, я бы использовал какой-то открытый метод или службу и обернул вышеупомянутый код.