• SmobilerService 推送实现


     

    SmobilerService 社区版、专业版、标准版都支持推送服务,那怎么能实现呢?

     

    安装SmobilerService

    https://www.smobiler.com/service/serviceInstall.html 上下载安装包并安装,安装后使用浏览器访问 http://localhost:15486 ,输入默认登陆名 admin 与默认密码 admin ,登陆并立即开始使用。

    Ps:打不开http://localhost:15486 则参考 https://wiki.smobiler.com/wiki/103 排查

    在云平台上创建应用

    登录云平台https://cloud.smobiler.com/ ,点击【创建】

     

    创建一个新应用

     

     

    在vs中创建服务端程序,并通过SmobilerService部署

    前提:电脑上需要安装VS以及SmobilerDesigner

    1. 创建一个SmobilerApplicants项目

     

    1. 在SmobilerForm1中拖入两个button和两个label,布局如图

     

    并在SmobilerForm1中写入下方代码:

    // 创建推送服务的操作对象。7933 为应用在云平台的唯一编号
    
            PushClient pushClient = new PushClient("7933");
    
            private void SmobilerForm1_Load(object sender, EventArgs e)
    
            {
    
                //调用 pushClient.Push 时处理客户端确认事件
    
                pushClient.Confirmed += PushClient_Confirmed;
    
                //调用 pushClient.PushClientCallBack 时处理消息推送服务回传的数据
    
                pushClient.ClientCallBack += PushClient_ClientCallBack;
    
            }
    
            private void button1_Press(object sender, EventArgs e)
    
            {
    
     
    
                //推送消息,用户点击应用内推送的确认按钮后,服务端将收到 Confirmed 事件响应。 this.client.DeviceID  获取当前设备号
    
                pushClient.Push("标题", "这里是通知消息的内容。", new string[] { this.Client.DeviceID });
    
            }
    
            /// 调用 pushClient.Push 时处理客户端确认事件
    
            private void PushClient_Confirmed(object sender, PushConfirmEventArgs e)
    
            {
    
                Client.RenderFlush();
    
                label1.Text = e.MessageID;
    
     
    
            }
    
            private void button2_Press(object sender, EventArgs e)
    
            {
    
                //推送消息,并在推送成功时触发 ClientCallBack 事件。
    
                //ClientCallBack 事件由消息队列服务主动回传数据触发,回传数据 PushClientCallBackEventArgs.Param 中包含推送消息的标题、内容、消息队列的 topic 等详细信息。 440000000048726 为设备编号 this.client.DeviceID
    
                pushClient.PushClientCallBack("标题", "这里是通知消息的内容。", "这里是 PushClient_ClientCallBack 事件回传的参数 Param。", new string[] { this.Client.DeviceID });
    
     
    
            }
    
            /// 调用 pushClient.PushClientCallBack 时处理消息推送服务主动回传的数据。e.Param 包含推送消息的标题、内容、消息队列的 topic 等详细信息
    
            private void PushClient_ClientCallBack(object sender, PushClientCallBackEventArgs e)
    
            {
    
                Client.RenderFlush();
    
                label2.Text = "ID" + e.MessageID + " param:" + e.Param;
    
           }
    1. 将项目的输出改成类库,重新生产项目,并部署到smobilerservce上去。

     

    Ps:部署方法参考https://www.smobiler.com/service/serviceHelpDoc.html?isExpand=yes#cloud

    若是手机app打开出现“未配置业务地址xxx.xxx.xxx” 点击【许可证】-【同步】

    在云平台上打包应用

    点击应用打包

     

    选择【Android】,并添加内网推送插件

     

    1883是SmobilerService默认的推送端口

    192.168.9.113 是服务端的ip

    Ps:默认推送端口可以在SmobilerService 中修改

     

    打包完成后,下载apk安装到手机上

    效果演示

    1. 通过SmobilerService推送

    点击【推送】,输入推送消息后,点击【选择设备并推送】

     

    手机端显示

     

    1. 通过代码推送

    点击app里的推送按钮,效果如图

     

  • 相关阅读:
    System.StringOfChar 反复字符
    System.Concat 连接字符串
    学习 TList 类的实现[5]
    raise 语句: 抛出异常
    System.Move 移动内存块
    学习 TList 类的实现[6]
    System.Pos 搜索子串的位置
    System.FillChar 填充字节
    学习 TList 类的实现[4]
    不停止的认识我们自己。。。。
  • 原文地址:https://www.cnblogs.com/smobiler/p/16546089.html
Copyright © 2020-2023  润新知