当前位置:网站首页>SmobilerService 推送实现

SmobilerService 推送实现

2022-08-03 11:03:00 smobiler

 

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里的推送按钮,效果如图

 

 

原网站

版权声明
本文为[smobiler]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/smobiler/p/16546089.html