我有一些SignalR集线器可能需要访问一些瞬态和单身的依赖关系。 钩住Hub的创build很容易,而且工作得很好,但是SignalR在创build的Hub上自己调用Dispose(),而不是通知依赖parsing器并让它参与处理。 如果依赖关系被注册为单身人士,这并不是什么大不了的事情,但是如果他们被注册为瞬间的话,那么他们将永远不会被处置(如果需要的话),温莎会保留他们,直到收集Windsor容器Web服务器正在closures)。 我看到几种可能的方式来处理这个… a)这里有人指出了一种方法来划分SignalR的HubDispatcher类的子类,以便它可以做适当的处理。 这不是SignalR的标准DependencyResolver的一部分,所以这可能是困难的或不可能的 b)SignalR中的其他一些类,在pipe道中的其他地方,可以重写或轻易replace,以便我们可以inheritanceHubDispatcher并确保使用子类。 从我可以告诉的是,这将是Owin中间件类HubDispatcherMiddleware。 有没有办法强制Owin不注册这个类,而是注册我自己的版本(反过来使用我自己的HubDispatcher)? c)有一些方法可以拦截由我的Hub类上的SignalR所做的Dispose()调用,以便可以将调用返回到Windsor以确保任何依赖关系正确处置并从容器中释放 d)尽量避免使用短暂的生活方式依赖,而是传入打字工厂,以便我们可以通过Hub内的打字工厂解决和释放每个依赖 目前(d)是我唯一知道该怎么做的人。 (a)或(b)将会很好。 (c)主要是由这篇文章http://kozmic.net/2010/01/27/transparently-releasing-components-in-windsor/覆盖,但是,拦截器要求通过IDisposable调用Dispose()。 SignalR的HubDispather类中枢处置的实现是 private static void DisposeHubs(IEnumerable<IHub> hubs) { foreach (var hub in hubs) { hub.Dispose(); } } 没有铸造到IDisposable那里…另外Dispose()在Hub类是虚拟的,并且博客文章暗示虚拟Dispose()可能增加一些复杂性(我不太确定多less和我不知道足够城堡的拦截器,无论是否丢失IDisposable的可以无论如何工作)。 我很欣赏我为一个相当狭隘的读者写了这个问题 – 那些使用过Windsor和SignalR的人,而不仅仅是解决依赖问题。 我发现的每个例子,包括StackOverflow上的例子,似乎都忽略了依赖关系的发布。 谢谢!
我试图添加SignalR到我的项目(ASPNET MVC 4)。 但是我不能使它工作。 在下面的图片中,你可以看到我收到的错误。 我读过很多的stackoverflow的post,但他们都没有解决我的问题。 这是我迄今为止所做的: 1) Ran Install-Package Microsoft.AspNet.SignalR -Pre 2) Added RouteTable.Routes.MapHubs(); in Global.asax.cs Application_Start() 3) If I go to http://localhost:9096/Gdp.IServer.Web/signalr/hubs I can see the file content 4) Added <modules runAllManagedModulesForAllRequests="true"/> to Web.Config 5) Created folder Hubs in the root of the MVC application 6) Moved jquery and signalR scripts to /Scripts/lib […]
我正在使用SignalR的中心function( https://github.com/SignalR/SignalR )向所有订阅的客户端发布消息: public class NewsFeedHub : Hub public void Send(string channel, string content) { Clients[channel].addMessage(content); } 当通过Javascript调用“Send”时,这很好,但是我也想让Web应用程序发布消息(从ASP.NET MVC操作方法中)。 我已经尝试实例化一个新对象ob NewsFeedHub并调用Send方法,但是这会导致错误(因为Hub的底层“连接”未设置)。 有没有办法使用集线器没有连接?
我正在使用SignalR向所有客户端广播消息。 我需要触发我的集线器类以外的广播,如下所示: var broadcast = new chatHub(); broadcast.Send("Admin","stop the chat"); 我收到错误消息: 使用不是由HubPipeline创build的Hub实例不受支持。
我正在尝试整合signalR在android应用程序,但没有运气。 我一直在看各种链接,但没有一个提供有关实施的正确信息。 我有以下问题。 SignalR集成必须在Service / Intent Service中完成吗? 如果我们想通过相同的调用方法接收响应,那么如何获得? 我已经添加了三个库,即signalr android , signalr client和gson但无法理解代码是如何工作的,没有适当的文档可用于理解代码。 一些问题,但没有太多的信息 Android Studio中的SignalR 无法在Android中使用SignalR实现p2p聊天 如果有人在本地应用程序的信号有经验,这将是对我非常有帮助。 更新 public class SignalRService extends Service { private static final String TAG = "Service"; private HubConnection mHubConnection; private HubProxy mHubProxy; private Handler mHandler; // to display Toast message private final IBinder mBinder = new LocalBinder(); private SharedPreferences […]