gpt4 book ai didi

c# - 是否可以将 signalR 方法配置为仅从服务器调用?

转载 作者:行者123 更新时间:2023-11-30 18:26:41 24 4
gpt4 key购买 nike

我有一个使用 signalR 连接到服务器端应用程序(asp.net mvc 应用程序)的客户端应用程序(C# 桌面应用程序),现在我希望当客户从网站购买我的产品时,销售报告给客户端应用程序。但出于安全原因,我认为这是限制仅从服务器端调用“我的 signalR 报告器方法”的好方法!但我不知道我该怎么做?

最佳答案

您想做的是向用户发出产品已更新的信号

首先获取上下文,

var context = GlobalHost.ConnectionManager.GetHubContext<ProductHub>()

然后你可以用不同的方式更新客户端,所有的客户端

context.Clients.All.updateProduct(product);

特定客户端(连接 ID)

context.Clients.Client(id).updateProduct(product)

用户编号

context.Clients.User(userId).updateProduct(product)

确保从您的域逻辑中抽象出 Hub 上下文,它们之间的高耦合是不好的做法。

你也可以使用一个为你抽象它的库,我已经创建了这样的库,我认为它会完美地满足你的需要,你可以使用任何类型的事件聚合器或消息总线,然后你从你的域调用你的总线方法如

eventAggregator.Publish(new ProductUpdated(product));

我的图书馆将启动并将更新交付给客户。看这里

http://andersmalmgren.com/2014/05/27/client-server-event-aggregation-with-signalr/

关于c# - 是否可以将 signalR 方法配置为仅从服务器调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28196899/

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