c# – Signalr – 用于发送消息的覆盖方法
发布时间:2020-12-16 01:52:38 所属栏目:百科 来源:网络整理
导读:我在Signalr中实现了PersistentConnection类.对于我们的站点,我需要能够广播消息,然后让每个连接确定该特定消息是否与该特定用户相关,然后将其发送到管道浏览器. 像这样的东西: public class MyConnection : PersistentConnection { private int _UserID; p
我在Signalr中实现了PersistentConnection类.对于我们的站点,我需要能够广播消息,然后让每个连接确定该特定消息是否与该特定用户相关,然后将其发送到管道浏览器.
像这样的东西: public class MyConnection : PersistentConnection { private int _UserID; public override void OnSending(object message) { var msg = message as MyNotification; if(msg != null && !msg.CanRead(_UserID)) return; base.OnSending(message); } } 这可能吗? 现在,我们有一个自定义会话状态对象.连接后,id将添加到用户会话对象.当我们有一个要发送的消息时,我们引发一个事件,每个会话确定是否将消息传递给其关联的客户端ID.我真的想将它与会话对象分离. 解决方法
您可以创建集线器管道模块以获得此影响.
例如,您可以这样做: public class MyModule : HubPipelineModule { protected override bool OnBeforeOutgoing(IHubOutgoingInvokerContext context) { return context.Connection.ShouldSend(); } } 然后在你的Application_Start中: GlobalHost.HubPipeline.AddModule(new MyModule()); 当然,您需要将ShouldSend方法添加到IConnection接口和相应的连接对象,但这会为您提供所需的结果. 有关集线器管道模块的更多信息,请参阅http://weblogs.asp.net/davidfowler/archive/2012/11/11/microsoft-asp-net-signalr.aspx处的集线器管道部分 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读