c# - 来自 WebAPI 控制器的 Signalr 集线器连接
问题描述
我有 2 个应用程序托管在 2 个不同的 Azure 机器中。一种是 Web 表单应用程序,另一种是 Web API 2.0 应用程序。两个应用程序共享一个公共 DLL(我们称之为 Data.DLL)。我在 Data.DLL 中实现了 Signal R HUB
在我的 Web 应用程序中,当我从 javascript 代码启动集线器时,Signal R 工作正常。
我还在 WebAPI 项目中添加了一个 Startup 类。
现在,我正在尝试向连接到 webform 应用程序的客户端传达消息,当我的 WebApp 中有任何其他 3rd 方客户端应用程序的 PUT 操作时。
所以在我的控制器类中,我尝试了这个:
var ctxt = Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<SignalRHub>();
if (ctxt != null)
{
try
{
ctxt.Clients.Group("MyClients").HandleServerNotifications("Hello");
}
catch (Exception ex)
{
// do a thing
}
}
但这不起作用,我也无法找到原因,因为无法调试。这有可能实现吗?
这是我在 Data.dll 中的 Signal R Hub 实现
导入 Microsoft.AspNet.SignalR
Public Class SignalRHub
Inherits Hub
Public Overrides Function OnConnected() As Task
Dim id = Context.ConnectionId
Groups.Add(id , "MyClients")
Return MyBase.OnConnected()
End Function
Public Overrides Function OnDisconnected(stopCalled As Boolean) As Task
Return MyBase.OnDisconnected(stopCalled)
End Function
Public Overrides Function OnReconnected() As Task
Return MyBase.OnReconnected()
End Function
End Class
谢谢。
解决方案
推荐阅读
- chef-infra - Chef:如何在没有 Web gui 的情况下下载入门工具包
- docker - 如何使用 gitlab 和 digitalocean 的服务器添加登台和生产环境
- database - 从另一个表中检索名称
- angular - 识别播放时从视频中提取的图像
- orientdb - OrientDB 遍历特定路径
- javascript - 动作发送但未接收的参数值
- python - 如果我只考虑一级索引,熊猫会根据列的聚合对多索引进行排序
- java - Java数组降序排序并打印其元素编号
- ruby-on-rails - 消息的图片网址
- javascript - 从 Vuex 操作向 Vuex getter 传递参数