그래서 SignalR 버전 .5를 사용하고 있었고 모든 것이 잘 작동했습니다. 하지만 connectionSlow 메소드를 사용하려면 버전 1로 업그레이드하려고합니다. 불행히도 내가 업그레이드했을 때 고장난 것으로 보인다. 내가 mvc 응용 프로그램을 가지고 있고 클라이언트에 데이터를 밀어 신호기를 사용하려고합니다. 나는 그 연결이 영원히 열려 있기를 바란다.메시지를받을 수 없습니다. 컨텍스트 connectionid
서버가 클라이언트에 메시지를 보내지 않습니다. LoggingPiplineModule을 사용하여 조사를 한 후에 context.Connection.Identifier가 연결된 브라우저의 connextionID가 아니라는 사실을 발견 했으므로 다른 사람에게 보내려합니다. ,
conChat = $.connection.commandcentrehub;
// Push method for signalR, process the pushed message passed from the server
conChat.addMessage = function (message, groupID) {
var call = JSON.parse(message);
updateTableImages($('#groupContent' + groupID), call, groupID);
updateTableImages($('#groupContent' + 'All'), call, 'All');
applyFilter();
};
$.connection.hub.start().done(function() {
$('.groupID').each(function() {
conChat.server.joinGroup(this.id.replace("group", ""));
});
});
그리고
내가 크롬 dev에에 오류를 얻을protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteTable.Routes.MapHubs();
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
GlobalHost.HubPipeline.AddModule(new LoggingPipelineModule());
log4net.Config.XmlConfigurator.Configure();
}
내 Global.asax에 :
public void JoinGroup(string groupID)
{
if (!String.IsNullOrEmpty(Context.User.Identity.Name) && (!String.IsNullOrEmpty(groupID)))
{
Groups.Add(Context.ConnectionId, groupID.Trim());
}
else
{
LoggerSingleton.Instance.Logger.Error("Error: Could not join group as user is not logged in or group is null");
}
}
public void LeaveGroup(string groupID)
{
if (!String.IsNullOrEmpty(Context.User.Identity.Name) && (!String.IsNullOrEmpty(groupID)))
{
Groups.Remove(Context.ConnectionId, groupID.Trim());
}
else
{
LoggerSingleton.Instance.Logger.Error("Error: Could not leave group as user is not logged in or group is null");
}
}
public static void SendCallLog(CallLog newCall, int groupID)
{
var context = GlobalHost.ConnectionManager.GetHubContext<CommandCentreHub>();
context.Clients.Group(groupID.ToString()).addMessage(CallLog.ToJson(newCall), groupID.ToString());
}
그리고 내 자바 스크립트 :
내 허브는 몇 가지 방법이있다 joingroup은 제대로 작동하지만 서버가 addMessage를 호출 할 때 나는 아무것도 얻지 못합니다.