/// <summary> /// 线程驱动 /// </summary> public void ProcessQueue() { PushMessageItem pushMessageItem = null; lock (PushMessageItemQueue) { while (PushMessageItemQueue.Count > 0) { pushMessageItem = PushMessageItemQueue.Dequeue(); if (null != pushMessageItem) { if (null == pushMessageItem.ClientIDList) { GetuiServerApiSDK.PushMessageToApp(pushMessageItem.Title, pushMessageItem.MessageText); } else if (pushMessageItem.ClientIDList.Count <= 1) { GetuiServerApiSDK.PushMessageToSingle(pushMessageItem.ClientIDList[0], pushMessageItem.Title, pushMessageItem.MessageText); } else { for (int i = 0; i < pushMessageItem.ClientIDList.Count;) { List <string> cidList = pushMessageItem.ClientIDList.GetRange(i, Math.Min(pushMessageItem.ClientIDList.Count - i, MaxNumPerList)); GetuiServerApiSDK.PushMessageToList(cidList, pushMessageItem.Title, pushMessageItem.MessageText); i += MaxNumPerList; } } } } } }
/// <summary> /// 添加一个要推送的消息项 /// </summary> /// <param name="pushMessageItem"></param> public void AddPushMessageItem(PushMessageItem pushMessageItem) { lock (PushMessageItemQueue) { PushMessageItemQueue.Enqueue(pushMessageItem); } }
/// <summary> /// 推动到多个用户消息 /// </summary> /// <param name="cid"></param> /// <param name="title"></param> /// <param name="messageText"></param> public void AddPushMessageText(List <string> cidList, string title, string messageText) { PushMessageItem pushMessageItem = new PushMessageItem() { ClientIDList = cidList, Title = title, MessageText = messageText, }; AddPushMessageItem(pushMessageItem); }
/// <summary> /// 推动到单个用户消息 /// </summary> /// <param name="cid"></param> /// <param name="title"></param> /// <param name="messageText"></param> public void AddPushMessageText(string cid, string title, string messageText) { PushMessageItem pushMessageItem = new PushMessageItem() { ClientIDList = new List <string>(), Title = title, MessageText = messageText, }; pushMessageItem.ClientIDList.Add(cid); AddPushMessageItem(pushMessageItem); }