/// <summary> /// 推送多个用户 /// </summary> /// <returns></returns> public string PushMultiple(ITemplate template) { IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); ListMessage message = new ListMessage(); message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选 message.Data = template; //message.PushNetWorkType = 0;//判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境 //设置接收者 List <Target> targetList = new List <Target>(); for (var i = 0; i < CLIENTID.Count; i++) { Target target = new Target(); target.appId = APPID; target.clientId = CLIENTID[i]; targetList.Add(target); } String contentId = push.getContentId(message, "任务组名"); String pushResult = push.pushMessageToList(contentId, targetList); return(pushResult); }
/// <summary> /// 多消息推送 /// </summary> /// <param name="Title">通知栏标题</param> /// <param name="Text">通知栏内容</param> /// <param name="Logo">通知栏显示本地图片</param> /// <param name="LogoURL">通知栏显示网络图标</param> /// <param name="TransmissionType">应用启动类型,1:强制应用启动 2:等待应用启动</param> /// <param name="TransmissionContent">透传内容</param> /// <param name="IsRing">接收到消息是否响铃,true:响铃 false:不响铃</param> /// <param name="IsVibrate">接收到消息是否震动,true:震动 false:不震动</param> /// <param name="IsClearable">接收到消息是否可清除,true:可清除 false:不可清除</param> /// <param name="beginTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param> /// <param name="endTime">设置通知定时展示时间,结束时间与开始时间相差需大于6分钟,消息推送后,客户端将在指定时间差内展示消息(误差6分钟)</param> /// <param name="clientIdList">client列表</param> public static void PushMessageToList(string Title, string Text, string Logo, string LogoURL, string TransmissionType, string TransmissionContent, bool IsRing, bool IsVibrate, bool IsClearable, string beginTime, string endTime, List <string> clientIdList) { // 推送主类(方式1,不可与方式2共存) IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名 //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET); ListMessage message = new ListMessage(); NotificationTemplate template = NotificationTemplate(Title, Text, Logo, LogoURL, TransmissionType, TransmissionContent, IsRing, IsVibrate, IsClearable, beginTime, endTime); // 用户当前不在线时,是否离线存储,可选 message.IsOffline = true; // 离线有效时间,单位为毫秒,可选 message.OfflineExpireTime = 1000 * 3600 * 12; message.Data = template; //message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。 //设置接收者 List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>(); foreach (string item in clientIdList) { com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target(); target.appId = APPID; target.clientId = item; targetList.Add(target); } String contentId = push.getContentId(message); String pushResult = push.pushMessageToList(contentId, targetList); }
public string getAPNContentId(string appId, ListMessage message) { var contentInfo = JsonConvert.DeserializeObject <ContentInfo>(httpPostJSON(new Dictionary <string, object> { { "action", "apnGetContentIdAction" }, { "appkey", appKey }, { nameof(appId), appId }, { "PI", Convert.ToBase64String(message.Data.getPushInfo().ToByteArray()) } })); var result = contentInfo.result; if (result.IndexOf("ok") > -1) { return(contentInfo.contentId); } throw new Exception("获取 contentId 失败:" + result); }
public void SelectedMessageChanged(ListMessage listMessage) { if (_messageSelectedEvent != null) { if (UserCanceledSelectedMessageChange(listMessage)) { if ((listMessage == null ? null : listMessage.ParentAnnotation.Guid) != SelectedMessageGuid) { // if GUID's are different, reload messages to switch back, // but wait _after_ the canceled selection change event completes. // The View's Timer will pick this up _reloadPending = true; // Enhance pH 2013.08: figure out how to keep the list view // (or at least the canceled selection) from blinking during this refresh } } else { _selectedMessage = listMessage; } } GoodTimeToSave(); }
private bool UserCanceledSelectedMessageChange(ListMessage listMessage) { var e = new CancelEventArgs(); _messageSelectedEvent.Invoke(listMessage, e); return(e.Cancel); }
public String getContentId(ListMessage message) { Dictionary <string, object> param = new Dictionary <string, object>(); String contentId = String.Empty; param.Add("action", "getContentIdAction"); param.Add("appkey", appKey); param.Add("clientData", Convert.ToBase64String(message.Data.getTransparent().ToByteArray())); param.Add("transmissionContent", message.Data.getTransmissionContent()); param.Add("isOffline", message.IsOffline); param.Add("offlineExpireTime", message.OfflineExpireTime); param.Add("pushType", message.Data.getPushType()); // post数据 String Result = httpPostJSON(param); System.Console.WriteLine("---------pushMessageToList result-----------" + Result); ContentInfo contentInfo = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <ContentInfo>(Result); String result = contentInfo.result; if (result.IndexOf("ok") > -1) { contentId = contentInfo.contentId; } return(contentId); }
protected void btnCalender_Click(object sender, EventArgs e) { DateTime dateStart = Convert.ToDateTime(txtCalender1.Text); DateTime dateEnd = Convert.ToDateTime(txtCalender2.Text); if (lblControl.Text == "Okunmayan") { ListMessage.DataSource = (from v in db.Visitor where v.Readed == false && v.SendTime >= dateStart && v.SendTime <= dateEnd orderby v.SendTime descending select new { ID = v.ID, FullName = v.FullName, Subject = v.Subject, SendTime = v.SendTime, Readed = v.Readed, Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message }).ToList(); ListMessage.DataBind(); } else if (lblControl.Text == "Okunan") { ListMessage.DataSource = (from v in db.Visitor where v.Readed == true && v.SendTime >= dateStart && v.SendTime <= dateEnd orderby v.SendTime descending select new { ID = v.ID, FullName = v.FullName, Subject = v.Subject, SendTime = v.SendTime, Readed = v.Readed, Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message }).ToList(); ListMessage.DataBind(); } else { ListMessage.DataSource = (from v in db.Visitor where v.SendTime >= dateStart && v.SendTime <= dateEnd orderby v.SendTime descending select new { ID = v.ID, FullName = v.FullName, Subject = v.Subject, SendTime = v.SendTime, Readed = v.Readed, Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message }).ToList(); ListMessage.DataBind(); } }
public static void apnPush(string title, string text, string iconUrl, List <string> pushChannels) { //APN简单推送 //IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); //APNTemplate template = new APNTemplate(); //APNPayload apnpayload = new APNPayload(); //SimpleAlertMsg alertMsg = new SimpleAlertMsg(""); //apnpayload.AlertMsg = alertMsg; //apnpayload.Badge = 11; //apnpayload.ContentAvailable = 1; //apnpayload.Category = ""; //apnpayload.Sound = "com.gexin.ios.silence"; //apnpayload.addCustomMsg("", ""); //template.setAPNInfo(apnpayload); //APN高级推送 IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); APNTemplate template = new APNTemplate(); APNPayload apnpayload = new APNPayload(); DictionaryAlertMsg alertMsg = new DictionaryAlertMsg(); alertMsg.Body = text; alertMsg.ActionLocKey = title; alertMsg.LocKey = title; alertMsg.addLocArg(""); alertMsg.LaunchImage = iconUrl; //IOS8.2支持字段 alertMsg.Title = ""; alertMsg.TitleLocKey = ""; alertMsg.addTitleLocArg(""); apnpayload.AlertMsg = alertMsg; apnpayload.Badge = 10; apnpayload.ContentAvailable = 1; apnpayload.Category = ""; apnpayload.Sound = ""; apnpayload.addCustomMsg("", ""); template.setAPNInfo(apnpayload); /*单个用户推送接口*/ //SingleMessage Singlemessage = new SingleMessage(); //Singlemessage.Data = template; //String pushResult = push.pushAPNMessageToSingle(APPID, DeviceToken, Singlemessage); //Console.Out.WriteLine(pushResult); /*多个用户推送接口*/ ListMessage listmessage = new ListMessage(); listmessage.Data = template; String contentId = push.getAPNContentId(APPID, listmessage); //Console.Out.WriteLine(contentId); //List<String> devicetokenlist = new List<string>(); //devicetokenlist.Add(DeviceToken); //String ret = push.pushAPNMessageToList(APPID, contentId, devicetokenlist); //Console.Out.WriteLine(ret); String ret = push.pushAPNMessageToList(APPID, contentId, pushChannels); }
/// <summary> /// Adds the message into tempdata list /// </summary> /// <param name="Message">The message.</param> private void AddMessage(Message message) { ListMessage = (List <Message>)TempData["Message"] ?? new List <Message>(); ListMessage.Add(message); TempData["Message"] = ListMessage; Logger.Debug(" : " + message.MessageType.ToString() + ": " + message.MessageText); }
private void ajouterSeparateurJour(DateTime date) { if (ListMessage.Count == 0 || date.DayOfYear > ListMessage.ElementAt(ListMessage.Count - 1).Date.DayOfYear) { ListMessage.Add(new Message(-1, null, date.DayOfWeek + " " + date.Day + " " + month(date.Month) + " " + date.Year, new DateTime(date.Year, date.Month, date.Day), RessourcesSimon.TAG_JOUR_SEPARATEUR)); } }
public static Message Unserialize(BinaryReader reader) { var opcode = (Opcode)reader.ReadByte(); var address = reader.ReadAddress(); Message msg; switch (opcode) { case Opcode.REQUEST: { msg = RequestMessage.FromReader(address, reader); break; } case Opcode.LIST: { msg = ListMessage.FromReader(address, reader); break; } case Opcode.MEMPOOL_Add: { msg = MempoolAddMessage.FromReader(address, reader); break; } /* case Opcode.MEMPOOL_List: * { * msg = MempoolGetMessage.FromReader(address, reader); * break; * } * * case Opcode.CHAIN_List: * { * msg = ChainListMessage.FromReader(address, reader); * break; * } */ case Opcode.ERROR: { msg = ErrorMessage.FromReader(address, reader); break; } default: return(null); } if (address != null) { msg.Signature = reader.ReadSignature(); } return(msg); }
private void ListMessage_TargetUpdated(object sender, DataTransferEventArgs e) { var Items = this.ListMessage.Items; if (Items.Count <= 0) { return; } ListMessage.ScrollIntoView(Items[Items.Count - 1]); }
//PushMessageToList接口测试代码 public static void PushMessageToList(string[] arr, string[] arr2) { // 推送主类(方式1,不可与方式2共存) IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名 //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET); ListMessage message = new ListMessage(); NotificationTemplate template = NotificationTemplateDemo(arr); // 用户当前不在线时,是否离线存储,可选 message.IsOffline = false; // 离线有效时间,单位为毫秒,可选 message.OfflineExpireTime = 1000 * 3600 * 12; message.Data = template; message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。 //设置接收者 List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>(); com.igetui.api.openservice.igetui.Target target = null; for (int i = 0; i < arr2.Length; i++) { target = new com.igetui.api.openservice.igetui.Target(); target.appId = APPID; target.clientId = arr2[0]; targetList.Add(target); } // List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>(); //com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target(); //target1.appId = APPID; //target1.clientId = CLIENTID; // 如需要,可以设置多个接收者 //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target(); //target2.AppId = APPID; //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0"; //targetList.Add(target1); //targetList.Add(target2); String contentId = push.getContentId(message); String pushResult = push.pushMessageToList(contentId, targetList); System.Console.WriteLine("-----------------------------------------------"); System.Console.WriteLine("服务端返回结果:" + pushResult); }
internal void AddBlock(Chain chain, Block block) { if (!Capabilities.HasFlag(PeerCaps.Sync)) { return; } foreach (var peer in _peers.Values) { var msg = new ListMessage(this.Keys.Address, this.PublicEndpoint, RequestKind.Blocks); msg.AddBlockRange(chain, block.Height, 1); SendMessage(peer, msg); } }
public void commandMessageListWithTwoMessage() { string otherMessageName = "OTHERMESSAGE"; ListMessage listMessage = new ListMessage(); CommandCreateMessage(); createMessage.setCommand(START_OF_COMMAND_CREATE + CommandRSATest.KEY_NAME + COMMAND_NAME + otherMessageName + COMMAND_TEXT + MESSAGE_TEXT + DOUBLE_QUOTES); Assert.AreEqual(true, createMessage.verifyCommand()); Assert.AreEqual((MESSAGE_CREATE_MESSAGE + otherMessageName), createMessage.action()); listMessage.setCommand("MESSAGE LIST"); Assert.AreEqual(true, listMessage.verifyCommand()); Assert.AreEqual(("\nMessages:" + "\n" + MESSAGE_NAME + "\n" + otherMessageName), listMessage.action()); }
/// <summary> /// 给多个用户发送推送(DEMO) /// </summary> private static void PushMessageToList() { IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); ListMessage message = new ListMessage(); /*消息模版: * 1.TransmissionTemplate:透传功能模板 * 2.LinkTemplate:通知打开链接功能模板 * 3.NotificationTemplate:通知透传功能模板 * 4.NotyPopLoadTemplate:通知弹框下载功能模板 */ TransmissionTemplate template = TransmissionTemplateDemo(); //NotificationTemplate template = NotificationTemplateDemo(); //LinkTemplate template = LinkTemplateDemo(); //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo(); template.TransmissionContent = "测试"; message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选 message.Data = template; //message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境 //设置接收者 List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>(); com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target(); target1.appId = APPID; //target1.clientId = CLIENTID; target1.clientId = CLIENTID; // 如需要,可以设置多个接收者 com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target(); target2.appId = APPID; //target2.clientId = "f563cffaba68587e7ff2f23110f6defd"; target2.clientId = CLIENTID; targetList.Add(target1); targetList.Add(target2); String contentId = push.getContentId(message, "ToList_任务组名"); String pushResult = push.pushMessageToList(contentId, targetList); System.Console.WriteLine("-----------------------------------------------"); System.Console.WriteLine("服务端返回结果:" + pushResult); }
//PushMessageToList接口测试代码 public static string PushMessageToList(List <string> cidList, string title, string messageText) { IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); ListMessage message = new ListMessage(); /*消息模版: * 1.TransmissionTemplate:透传功能模板 * 2.LinkTemplate:通知打开链接功能模板 * 3.NotificationTemplate:通知透传功能模板 * 4.NotyPopLoadTemplate:通知弹框下载功能模板 */ //TransmissionTemplate template = TransmissionTemplateDemo(); NotificationTemplate template = NotificationTemplateDemo(title, messageText);; //LinkTemplate template = LinkTemplateDemo(); //NotyPopLoadTemplate template = NotyPopLoadTemplateDemo(); message.IsOffline = false; // 用户当前不在线时,是否离线存储,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选 message.Data = template; //设置接收者 List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>(); for (int i = 0; i < cidList.Count; i++) { com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target(); target1.appId = APPID; target1.clientId = cidList[i]; // 如需要,可以设置多个接收者 //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target(); //target2.AppId = APPID; //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0"; targetList.Add(target1); //targetList.Add(target2); } string contentId = push.getContentId(message); string pushResult = push.pushMessageToList(contentId, targetList); //System.Console.WriteLine("-----------------------------------------------"); //System.Console.WriteLine("服务端返回结果:" + pushResult); return(pushResult); }
protected void Page_Load(object sender, EventArgs e) { ListMessage.DataSource = (from v in db.Visitor orderby v.SendTime descending select new { ID = v.ID, FullName = v.FullName, Subject = v.Subject, SendTime = v.SendTime, Readed = v.Readed, Message = (v.Message.Length > 50) ? v.Message.Substring(0, 49) + "..." : v.Message }).ToList(); ListMessage.DataBind(); ((Master)this.Master).Path = "Ziyaretçi"; ((Master)this.Master).PathLink = "VisitorPage.aspx"; }
protected void btnOkunan_Click(object sender, EventArgs e) { ListMessage.DataSource = (from v in db.Visitor where v.Readed == true orderby v.SendTime descending select new { ID = v.ID, FullName = v.FullName, Subject = v.Subject, SendTime = v.SendTime, Readed = v.Readed, Message = (v.Message.Length > 50) ? v.Message.Substring(0, 149) : v.Message }).ToList(); ListMessage.DataBind(); lblControl.Text = "Okunan"; }
//PushMessageToList接口测试代码推送 //安卓推送 public static void PushMessageToList(string title, string text, string transmissioncontent, string iconUrl, List <string> pushChannels) { IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); ListMessage message = new ListMessage(); /*消息模版: * 1.TransmissionTemplate:透传功能模板 * 2.LinkTemplate:通知打开链接功能模板 * 3.NotificationTemplate:通知透传功能模板 * 4.NotyPopLoadTemplate:通知弹框下载功能模板 */ NotificationTemplate template = NotificationTemplateDemo(); template.Title = title; template.Text = text; template.Logo = "icon.png"; template.LogoURL = iconUrl; template.TransmissionContent = transmissioncontent; message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选 message.Data = template; //message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为非WIFI环境 //设置接收者 List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>(); for (int i = 0; i < pushChannels.Count; i++) { string clientId = pushChannels[i]; if (!string.IsNullOrEmpty(clientId)) { // 如需要,可以设置多个接收者 com.igetui.api.openservice.igetui.Target target = new com.igetui.api.openservice.igetui.Target(); target.appId = APPID; target.clientId = clientId; //target1.alias = ALIAS; targetList.Add(target); } } String contentId = push.getContentId(message, "msgpush"); String pushResult = push.pushMessageToList(contentId, targetList); }
/// <summary>发送通知</summary> /// <param name="task">任务信息</param> /// <param name="receiverIds">接收者</param> /// <param name="options">选项</param> public int Send(TaskWorkInfo task, string receiverIds, string options) { JsonData data = JsonMapper.ToObject(options); string payload = data.GetValue("payload", "{}"); string title = data.GetValue("title", task.Tags); string content = data.GetValue("content", task.Title); // 推送消息 IGtPush push = new IGtPush(this.Host, this.AppKey, this.MasterSecret); ListMessage message = new ListMessage(); // 用户当前不在线时,是否离线存储 (可选) message.IsOffline = true; // 离线有效时间,单位为毫秒,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。 message.PushNetWorkType = 0; // 拼装透传内容 string transmissionContent = "{\"title\":\"" + title + "\",\"content\":\"" + content + "\",\"payload\":" + payload + "}"; message.Data = GetTransmissionTemplate(transmissionContent, this.AppId, this.AppKey); IList <string> clientList = MembershipManagement.Instance.AccountBindingService.FindAllBindingObjectIds(receiverIds, "Getui"); // 设置接收者 List <Target> targetList = new List <Target>(); foreach (var item in clientList) { Target target1 = new Target(); target1.appId = this.AppId; target1.clientId = item; targetList.Add(target1); } string contentId = push.getContentId(message); string result = push.pushMessageToList(contentId, targetList); return(0); }
public static void Push(List <string> clientIds, NotificationTemplate template) { IGtPush push = new IGtPush(host, appKey, masterSecret); ListMessage message = new ListMessage() { Data = template }; List <Target> targetList = new List <Target>(); clientIds.ForEach(clientId => targetList.Add(new Target() { appId = appId, clientId = clientId })); string contentId = push.getContentId(message); string pushResult = push.pushMessageToList(contentId, targetList); }
//PushMessageToList接口测试代码 private static void PushMessageToList() { IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); ListMessage message = new ListMessage(); NotificationTemplate template = new NotificationTemplate(); template.AppId = APPID; // 应用APPID template.AppKey = APPKEY; // 应用APPKEY template.Title = "此处填写通知标题"; // 通知标题 template.Text = "此处填写通知内容"; // 通知内容 template.Logo = "icon.png"; // 应用Logo template.LogoURL = "http://www.photophoto.cn/m23/086/010/0860100017.jpg"; //通知栏网络图片展示 template.TransmissionType = "2"; // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动 template.TransmissionContent = "你需要透传的内容"; // 需要透传的内容 //template.IsRing = true; // 收到通知是否响铃,可选,默认响铃 //template.IsVibrate = true; // 收到通知是否震动,可选,默认振动 //template.IsClearable = true; // 通知是否可清除,可选,默认可清除 message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选 message.Data = template; //设置接收者 List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>(); com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target(); target1.appId = APPID; target1.clientId = CLIENTID; // 如需要,可以设置多个接收者 //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target(); //target2.AppId = APPID; //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0"; targetList.Add(target1); //targetList.Add(target2); String contentId = push.getContentId(message); String pushResult = push.pushMessageToList(contentId, targetList); System.Console.WriteLine("-----------PushMessageToList--------------" + pushResult); }
//static void Main() //{ // //toList接口每个用户状态返回是否开启,可选 // Console.OutputEncoding = Encoding.GetEncoding(936); // Environment.SetEnvironmentVariable("needDetails", "true"); // //2.PushMessageToList接口 // PushToList(); //} //PushMessageToList接口测试代码 public static void PushToList(string title, string content, List <string> clientList, bool istz) { // 推送主类(方式1,不可与方式2共存) IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); // 推送主类(方式2,不可与方式1共存)此方式可通过获取服务端地址列表判断最快域名后进行消息推送,每10分钟检查一次最快域名 //IGtPush push = new IGtPush("",APPKEY,MASTERSECRET); ListMessage message = new ListMessage(); //NotificationTemplate template = NotificationTemplateDemo(title, content); if (istz) { NotificationTemplate template = NotificationTemplateDemo(title, content); message.Data = template; } else { TransmissionTemplate template = TransmissionTemplateDemo(title, content); message.Data = template; } // 用户当前不在线时,是否离线存储,可选 message.IsOffline = false; // 离线有效时间,单位为毫秒,可选 message.OfflineExpireTime = 1000 * 3600 * 12; message.PushNetWorkType = 0; //判断是否客户端是否wifi环境下推送,1为在WIFI环境下,0为不限制网络环境。 //设置接收者 List <com.igetui.api.openservice.igetui.Target> targetList = new List <com.igetui.api.openservice.igetui.Target>(); foreach (var cid in clientList) { com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target(); target1.appId = APPID; target1.clientId = cid; //target1.alias = ALIAS1; targetList.Add(target1); } String contentId = push.getContentId(message); String pushResult = push.pushMessageToList(contentId, targetList); System.Console.WriteLine("-----------------------------------------------"); System.Console.WriteLine("服务端返回结果:" + pushResult); }
private static bool PushMsgToList(List <string> clientidlist, ITemplate msgTemplate) { bool result = false; try { IGtPush gtPush = new IGtPush(Push.HOST, Push.APPKEY, Push.MASTERSECRET); ListMessage listMessage = new ListMessage(); listMessage.IsOffline = true; listMessage.OfflineExpireTime = 2073600000L; listMessage.Data = msgTemplate; List <Target> list = new List <Target>(); for (int i = 0; i < clientidlist.Count; i++) { string text = clientidlist[i]; if (!string.IsNullOrEmpty(text)) { Target target = new Target(); target.appId = Push.APPID; target.clientId = text; list.Add(target); } } string contentId = gtPush.getContentId(listMessage, "msgpush"); Push.errorMsg = gtPush.pushMessageToList(contentId, list); JsonData jsonData = MyCommon.JsonStrToObj(Push.errorMsg); string jsonObjValue = MyCommon.getJsonObjValue(jsonData, "result"); if (jsonObjValue.ToLower() == "ok") { result = true; } } catch (Exception ex) { Push.errorMsg += ex.Message; } return(result); }
public void pushMessageToList(ListMessage message, IListProvider listProvider, IPushEventListener listener) { }
/// <summary> /// Finds a message type to handle the message. /// </summary> public ReceivableMessage Process() { // Named messages. if (NickMessage.CanProcess(this)) { return(new NickMessage(this)); } if (QuitMessage.CanProcess(this)) { return(new QuitMessage(this)); } if (JoinMessage.CanProcess(this)) { return(new JoinMessage(this)); } if (PartMessage.CanProcess(this)) { return(new PartMessage(this)); } if (PrivateMessage.CanProcess(this)) { return(new PrivateMessage(this)); } if (PingMessage.CanProcess(this)) { return(new PingMessage(this)); } if (NoticeMessage.CanProcess(this)) { return(new NoticeMessage(this)); } if (UserModeMessage.CanProcess(this)) { return(new UserModeMessage(this)); } if (ChannelModeMessage.CanProcess(this)) { return(new ChannelModeMessage(this)); } if (KickMessage.CanProcess(this)) { return(new KickMessage(this)); } if (InviteMessage.CanProcess(this)) { return(new InviteMessage(this)); } if (OperwallMessage.CanProcess(this)) { return(new OperwallMessage(this)); } if (Receive.TopicMessage.CanProcess(this)) { return(new Receive.TopicMessage(this)); } // IRCv3 messages. if (Receive.v3.CapabilityMessage.CanProcess(this)) { return(new Receive.v3.CapabilityMessage(this)); } if (Receive.v3.AwayMessage.CanProcess(this)) { return(new Receive.v3.AwayMessage(this)); } // Numerics. if (NumericMessage.CanProcess(this)) { // Pass all numeric messages to NumericMessage so an event can be fired, then pass it to more specific instances. // ReSharper disable once ObjectCreationAsStatement new NumericMessage(this); if (WelcomeMessage.CanProcess(this)) { return(new WelcomeMessage(this)); } if (YourHostMessage.CanProcess(this)) { return(new YourHostMessage(this)); } if (CreatedMessage.CanProcess(this)) { return(new CreatedMessage(this)); } if (MyInfoMessage.CanProcess(this)) { return(new MyInfoMessage(this)); } if (SupportMessage.CanProcess(this)) { return(new SupportMessage(this)); } if (BounceMessage.CanProcess(this)) { return(new BounceMessage(this)); } if (MOTDEndMessage.CanProcess(this)) { return(new MOTDEndMessage(this)); } if (MOTDStartMessage.CanProcess(this)) { return(new MOTDStartMessage(this)); } if (MOTDMessage.CanProcess(this)) { return(new MOTDMessage(this)); } if (LUserMessage.CanProcess(this)) { return(new LUserMessage(this)); } if (NamesMessage.CanProcess(this)) { return(new NamesMessage(this)); } if (EndOfNamesMessage.CanProcess(this)) { return(new EndOfNamesMessage(this)); } if (TopicMessage.CanProcess(this)) { return(new TopicMessage(this)); } if (TopicWhoTimeMessage.CanProcess(this)) { return(new TopicWhoTimeMessage(this)); } if (ListMessage.CanProcess(this)) { return(new ListMessage(this)); } if (ListEndMessage.CanProcess(this)) { return(new ListEndMessage(this)); } if (YoureOperMessage.CanProcess(this)) { return(new YoureOperMessage(this)); } if (AwayMessage.CanProcess(this)) { return(new AwayMessage(this)); } if (UnAwayMessage.CanProcess(this)) { return(new UnAwayMessage(this)); } if (NowAwayMessage.CanProcess(this)) { return(new NowAwayMessage(this)); } if (ChannelModeIsMessage.CanProcess(this)) { return(new ChannelModeIsMessage(this)); } if (UModeIsMessage.CanProcess(this)) { return(new UModeIsMessage(this)); } if (VersionMessage.CanProcess(this)) { return(new VersionMessage(this)); } if (TimeMessage.CanProcess(this)) { return(new TimeMessage(this)); } if (WhoMessage.CanProcess(this)) { return(new WhoMessage(this)); } if (WhoisMessage.CanProcess(this)) { return(new WhoisMessage(this)); } if (EndOfWhoMessage.CanProcess(this)) { return(new EndOfWhoMessage(this)); } if (EndOfWhoisMessage.CanProcess(this)) { return(new EndOfWhoisMessage(this)); } if (BanListMessage.CanProcess(this)) { return(new BanListMessage(this)); } if (EndOfBanListMessage.CanProcess(this)) { return(new EndOfBanListMessage(this)); } if (InviteListMessage.CanProcess(this)) { return(new InviteListMessage(this)); } if (EndOfInviteListMessage.CanProcess(this)) { return(new EndOfInviteListMessage(this)); } if (ExceptListMessage.CanProcess(this)) { return(new ExceptListMessage(this)); } if (EndOfExceptListMessage.CanProcess(this)) { return(new EndOfExceptListMessage(this)); } if (IsOnMessage.CanProcess(this)) { return(new IsOnMessage(this)); } // Catch all for unhandled error messages. if (ErrorMessage.CanProcess(this)) { return(new ErrorMessage(this)); } } Console.WriteLine("Message handler for \"" + Text + "\" not found."); return(null); }
//PushMessageToList接口测试代码 private static void PushMessageToList() { IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); ListMessage message = new ListMessage(); NotificationTemplate template = new NotificationTemplate(); template.AppId = APPID; // 应用APPID template.AppKey = APPKEY; // 应用APPKEY template.Title = "此处填写通知标题"; // 通知标题 template.Text = "此处填写通知内容"; // 通知内容 template.Logo = "icon.png"; // 应用Logo template.LogoURL = "http://www.photophoto.cn/m23/086/010/0860100017.jpg"; //通知栏网络图片展示 template.TransmissionType = "2"; // 收到消息是否立即启动应用,1为立即启动,2则广播等待客户端自启动 template.TransmissionContent = "你需要透传的内容"; // 需要透传的内容 //template.IsRing = true; // 收到通知是否响铃,可选,默认响铃 //template.IsVibrate = true; // 收到通知是否震动,可选,默认振动 //template.IsClearable = true; // 通知是否可清除,可选,默认可清除 message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选 message.Data = template; //设置接收者 List<com.igetui.api.openservice.igetui.Target> targetList = new List<com.igetui.api.openservice.igetui.Target>(); com.igetui.api.openservice.igetui.Target target1 = new com.igetui.api.openservice.igetui.Target(); target1.appId = APPID; target1.clientId = CLIENTID; // 如需要,可以设置多个接收者 //com.igetui.api.openservice.igetui.Target target2 = new com.igetui.api.openservice.igetui.Target(); //target2.AppId = APPID; //target2.ClientId = "ddf730f6cabfa02ebabf06e0c7fc8da0"; targetList.Add(target1); //targetList.Add(target2); String contentId = push.getContentId(message); String pushResult = push.pushMessageToList(contentId, targetList); System.Console.WriteLine("-----------PushMessageToList--------------" + pushResult); }
public String getContentId(ListMessage message) { Dictionary<string, object> param = new Dictionary<string, object>(); String contentId = String.Empty; param.Add("action", "getContentIdAction"); param.Add("appkey", appKey); param.Add("clientData", Convert.ToBase64String(message.Data.getTransparent().ToByteArray())); param.Add("transmissionContent", message.Data.getTransmissionContent()); param.Add("isOffline", message.IsOffline); param.Add("offlineExpireTime", message.OfflineExpireTime); param.Add("pushType", message.Data.getPushType()); // post数据 String Result = httpPostJSON(param); System.Console.WriteLine("---------pushMessageToList result-----------" + Result); ContentInfo contentInfo = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<ContentInfo>(Result); String result = contentInfo.result; if (result.IndexOf("ok") > -1) { contentId = contentInfo.contentId; } return contentId; }
private Message HandleMessage(Peer peer, Message msg) { if (msg.IsSigned && msg.Address != Address.Null) { peer.SetAddress(msg.Address); } else { return(new ErrorMessage(Address, P2PError.MessageShouldBeSigned)); } switch (msg.Opcode) { case Opcode.EVENT: { var evtMessage = (EventMessage)msg; var evt = evtMessage.Event; Logger.Message("New event: " + evt.ToString()); return(null); } case Opcode.REQUEST: { var request = (RequestMessage)msg; if (request.NexusName != Nexus.Name) { return(new ErrorMessage(Address, P2PError.InvalidNexus)); } if (request.Kind == RequestKind.None) { return(null); } var answer = new ListMessage(this.Address, request.Kind); if (request.Kind.HasFlag(RequestKind.Peers)) { answer.SetPeers(this.Peers.Where(x => x != peer).Select(x => x.Endpoint)); } if (request.Kind.HasFlag(RequestKind.Chains)) { var chains = Nexus.Chains.Select(x => Nexus.FindChainByName(x)).Select(x => new ChainInfo(x.Name, Nexus.GetParentChainByName(x.Name), x.LastBlock != null ? x.LastBlock.Height : 0)); answer.SetChains(chains); } if (request.Kind.HasFlag(RequestKind.Mempool)) { var txs = _mempool.GetTransactions().Select(x => Base16.Encode(x.ToByteArray(true))); answer.SetMempool(txs); } if (request.Kind.HasFlag(RequestKind.Blocks)) { foreach (var entry in request.Blocks) { var chain = this.Nexus.FindChainByName(entry.Key); if (chain == null) { continue; } var startBlock = entry.Value; if (startBlock > chain.BlockHeight) { continue; } var blockList = new List <string>(); var currentBlock = startBlock; while (blockList.Count < 50 && currentBlock <= chain.BlockHeight) { var block = chain.FindBlockByHeight(currentBlock); var bytes = block.ToByteArray(); var str = Base16.Encode(bytes); foreach (var tx in chain.GetBlockTransactions(block)) { var txBytes = tx.ToByteArray(true); str += "/" + Base16.Encode(txBytes); } blockList.Add(str); currentBlock++; } answer.AddBlockRange(chain.Name, startBlock, blockList); } } return(answer); } case Opcode.LIST: { var listMsg = (ListMessage)msg; var outKind = RequestKind.None; if (listMsg.Kind.HasFlag(RequestKind.Peers)) { var newPeers = listMsg.Peers.Where(x => !IsKnown(x)); foreach (var entry in listMsg.Peers) { Logger.Message("New peer: " + entry.ToString()); } QueueEndpoints(newPeers); } var blockFetches = new Dictionary <string, uint>(); if (listMsg.Kind.HasFlag(RequestKind.Chains)) { foreach (var entry in listMsg.Chains) { var chain = Nexus.FindChainByName(entry.name); // NOTE if we dont find this chain then it is too soon for ask for blocks from that chain if (chain != null && chain.BlockHeight < entry.height) { blockFetches[entry.name] = chain.BlockHeight + 1; } } } if (listMsg.Kind.HasFlag(RequestKind.Mempool)) { int submittedCount = 0; foreach (var txStr in listMsg.Mempool) { var bytes = Base16.Decode(txStr); var tx = Transaction.Unserialize(bytes); try { _mempool.Submit(tx); submittedCount++; } catch { } Logger.Message(submittedCount + " new transactions"); } } if (listMsg.Kind.HasFlag(RequestKind.Blocks)) { bool addedBlocks = false; foreach (var entry in listMsg.Blocks) { var chain = Nexus.FindChainByName(entry.Key); if (chain == null) { continue; } var blockRange = entry.Value; var currentBlock = blockRange.startHeight; foreach (var rawBlock in blockRange.rawBlocks) { var temp = rawBlock.Split('/'); var block = Block.Unserialize(Base16.Decode(temp[0])); var transactions = new List <Transaction>(); for (int i = 1; i < temp.Length; i++) { var tx = Transaction.Unserialize(Base16.Decode(temp[i])); transactions.Add(tx); } // TODO this wont work in the future... try { chain.AddBlock(block, transactions, null); foreach (var hash in block.TransactionHashes) { var events = block.GetEventsForTransaction(hash); foreach (var evt in events) { AddEvent(evt); } } } catch (Exception e) { throw new Exception("block add failed"); } Logger.Message($"Added block #{currentBlock} to {chain.Name}"); addedBlocks = true; currentBlock++; } } if (addedBlocks) { outKind |= RequestKind.Chains; } } if (blockFetches.Count > 0) { outKind |= RequestKind.Blocks; } if (outKind != RequestKind.None) { var answer = new RequestMessage(outKind, Nexus.Name, this.Address); if (blockFetches.Count > 0) { answer.SetBlocks(blockFetches); } return(answer); } break; } case Opcode.MEMPOOL_Add: { var memtx = (MempoolAddMessage)msg; var prevSize = _mempool.Size; foreach (var tx in memtx.Transactions) { _mempool.Submit(tx); } var count = _mempool.Size - prevSize; Logger.Message($"Added {count} txs to the mempool"); break; } case Opcode.BLOCKS_List: { break; } case Opcode.ERROR: { var errorMsg = (ErrorMessage)msg; if (string.IsNullOrEmpty(errorMsg.Text)) { Logger.Error($"ERROR: {errorMsg.Code}"); } else { Logger.Error($"ERROR: {errorMsg.Code} ({errorMsg.Text})"); } break; } } Logger.Message("No answer sent."); return(null); }
public void Clear() { ListMessage.Clear(); MessageType = MessageTypeEnum.Message; }
private string PushMessageToListIOS(RequestPushMessageToList req) { try { IGtPush push = new IGtPush(HOST, APPKEY, MASTERSECRET); ListMessage message = new ListMessage(); TransmissionTemplate template = TransmissionTemplateIOS(req.Title); message.IsOffline = true; // 用户当前不在线时,是否离线存储,可选 message.OfflineExpireTime = 1000 * 3600 * 12; // 离线有效时间,单位为毫秒,可选 message.Data = template; //设置接收者 var targetList = new List<com.igetui.api.openservice.igetui.Target>(); string[] cds = req.Clientids.Split(",".ToCharArray()); foreach (string s in cds) { var target1 = new com.igetui.api.openservice.igetui.Target(); target1.appId = APPID; target1.clientId = s; targetList.Add(target1); } String contentId = push.getContentId(message); String pushResult = push.pushMessageToList(contentId, targetList); return pushResult; } catch (Exception ex) { return ex.ToString(); } }
public void SelectedMessageChanged(ListMessage listMessage) { if (_messageSelectedEvent != null) { if (listMessage == null) //nothing is selected now { _messageSelectedEvent.Raise(null, null); } else { _messageSelectedEvent.Raise(listMessage.ParentAnnotation, listMessage.Message); } } GoodTimeToSave(); }
private bool UserCanceledSelectedMessageChange(ListMessage listMessage) { var e = new CancelEventArgs(); _messageSelectedEvent.Invoke(listMessage, e); return e.Cancel; }
public void ajouterMessage(Utilisateur auteur, string chaine, DateTime date, Boolean important) { ajouterSeparateurJour(date); ListMessage.Add(new Message(idMessage++, auteur, chaine, date, important)); }