gpt4 book ai didi

asp.net-mvc - SignalR + 通过操作方法将消息发布到集线器

转载 作者:行者123 更新时间:2023-12-03 05:34:47 25 4
gpt4 key购买 nike

我正在使用 SignalR ( https://github.com/SignalR/SignalR ) 的集线器功能向所有订阅的客户端发布消息:

public class NewsFeedHub : Hub
public void Send(string channel, string content)
{
Clients[channel].addMessage(content);
}

通过 Javascript 调用“发送”时效果很好,但我还希望 Web 应用程序发布消息(从 ASP.NET MVC 操作方法内)。我已经尝试实例化一个新对象 ob NewsFeedHub 并调用 Send 方法,但这会导致错误(因为未设置集线器的底层“连接”)。有没有办法在没有连接的情况下使用集线器?

最佳答案

请注意,自提出此问题以来,SignalR API 已多次更改。有些答案可能会过时。

对此还有另一个更新的答案,如 SignalR Wiki 中所示。

c#

public ActionResult MyControllerMethod()
{
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.All.methodInJavascript("hello world");
// or
context.Clients.Group("groupname").methodInJavascript("hello world");
}

vb.net

Public Function MyControllerMethod() As ActionResult
Dim context = GlobalHost.ConnectionManager.GetHubContext(Of MyHub)()
context.Clients.All.methodInJavascript("hello world")
'' or
context.Clients.Group("groupname").methodInJavascript("hello world")
End Function

更新

此代码已更新。关注 http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server进行更改。

如果您使用 DI 容器

如果您使用 DI 容器连接集线器,请从容器中获取 IConnectionManager,并在该 connectionManager 上调用 GetHubContext

关于asp.net-mvc - SignalR + 通过操作方法将消息发布到集线器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7549179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com