private void PublishImpl(Subscription subscription, IPublishrMessage value) { var client = new RestClient(subscription.CallbackUrl.TrimEnd('/') + "/publishr/connect"); var request = new RestRequest(Method.GET) { RequestFormat = DataFormat.Json }; request.AddParameter("_", JsonSerializer.SerializeToString(value)); client.Execute(request); }
public void Publish(IPublishrMessage message) { string handleType = message.GetType().FullName; IEnumerable <ISubscription> filtered = Configuration.Subscriptions.Where(subscription => subscription.Handles.Contains(handleType)); foreach (Subscription subscription in filtered) { message.HubName = subscription.HubName; message.HubMethod = subscription.HubMethod; message.HandleType = handleType; PublishImpl(subscription, message); } }
private void Handle(IPublishrMessage message) { IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <PublishrHub>(); MethodExecutionDefinition methodExecution = _reflector.GetTargetMethod(GetType(), message.HandleType); if (methodExecution.Method != null) { object messageObj = ServiceStack.Text.JsonSerializer.DeserializeFromString(message.Raw, methodExecution.ParameterType); methodExecution.Method.Invoke(this, new[] { messageObj }); } else { if (hubContext != null) { hubContext.Clients.All.Invoke(message.HubMethod, new { data = message.Raw }); } } }
protected virtual void Handle(IPublishrMessage message) { CurrentHubContext = GlobalHost.ConnectionManager.GetHubContext(message.HubName); IEnumerable <MethodExecutionDefinition> methodExecutionDefinations = _globalRegistry.FindByMessageType(message.HandleType); foreach (MethodExecutionDefinition methodExecution in methodExecutionDefinations) { if (methodExecution.Method != null) { object messageObj = JsonSerializer.DeserializeFromString(message.Raw, methodExecution.ParameterType); PublishrModule moduleInstance = (PublishrModule)Activator.CreateInstance(methodExecution.OwnerType); moduleInstance.CurrentHubContext = CurrentHubContext; methodExecution.Method.Invoke(moduleInstance, new[] { messageObj }); } else { CurrentHubContext.Clients.All.Invoke(message.HubMethod, new { data = message.Raw }); } } }
public void Publish(IPublishrMessage message) { _pubSubContext.Publish(message); }