public void Subscribe(string p_id) { try { NvsService_Callback _NvsService_Callback = OperationContext.Current.GetCallbackChannel <NvsService_Callback>(); lock (DBMemory.c_object_lock) { //remove the old client if (DBMemory.c_dic_identifi_callback_client.ContainsKey(p_id)) { DBMemory.c_dic_identifi_callback_client.Remove(p_id); } DBMemory.c_dic_identifi_callback_client.Add(p_id, _NvsService_Callback); NaviCommon.Common.log.Error("Client " + p_id + " Subscribe"); } if (DBMemory.c_dic_User_Interface.ContainsKey(p_id)) { DBMemory.c_dic_User_Interface[p_id].c_User_Info.Online_Status = (int)Enum_Session_Status.LogIn; } } catch (Exception ex) { NaviCommon.Common.log.Error(ex.ToString()); } }
/// <summary> /// Gửi dữ liệu tới 1 Identify /// </summary> /// <param name="p_id">Identify muốn gửi</param> /// <param name="p_data">Dữ liệu muốn gửi</param> public void Push_By_Identify(string p_id, Message_Info p_data) { try { if (DBMemory.c_dic_identifi_callback_client.ContainsKey(p_id)) { NvsService_Callback _item = DBMemory.c_dic_identifi_callback_client[p_id]; _item.PushMessage(p_data); p_data.Status = (int)Enum_Message_Status.OK; } else { p_data.Status = (int)Enum_Message_Status.Not_OK; } p_data.Type = (int)Enum_Message_Type.Receive; _lst_Recieve.Add(p_data); } catch (Exception ex) { NaviCommon.Common.log.Error(ex.ToString()); } }