/// <summary> /// Отправка сообщения /// </summary> /// <param name="message">Сообщение</param> /// <param name="filter">Фильтр клиентов</param> public static void PushMessage(CometMessage message, Predicate <CometAsyncState> filter) { WriteLog($"Start PushMessage -> message: {message.Message}"); MsgProcessor.AddMessage(message, filter); WriteLog("End PushMessage"); }
// Возвращаем сообщение каждому подключенному клиенту /* * public static void PushMessage(CometMessage pushMessage, string clientGuid = "") * { * lock (_lock) * { * // Пробегаем по списку всех подключенных клиентов * foreach (var clientState in _clientStateList) * { * if (clientState.CurrentContext.Session != null) * { * if (clientGuid != "" && clientState.ClientGuid != clientGuid) continue; * // И пишем в выходной поток текущее сообщение * clientState.CurrentContext.Response.Write(pushMessage.IsV4Script * ? pushMessage.Message * : pushMessage.Serialize()); * // После чего завершаем запрос - вот именно после этого результаты * // запроса пойдут ко всем подключенным клиентам * clientState.CompleteRequest(); * } * } * } * }*/ /// <summary> /// Отправка сообщения /// </summary> /// <param name="message">Сообщение</param> /// <param name="clientGuid">Идентификатор страницы</param> public static void PushMessage(CometMessage message, string clientGuid = "") { MsgProcessor.AddMessage(message, clientGuid); }