.NET个人博客-使用Back进行消息推送
使用Back推送消息到你的iPhone
前言
我的好友看了我的博客,给我提了个需求,让我搞个网站通知,我开始以为就是评论回复然后发送邮件通知。不过他告诉我网站通知是,当有人评论或者留言后,会通知到我这边来,消息是实时通知的,他说用的是Back,不需要发邮件,然后发了个GitHub链接给我,我觉得还不错,下面开始实操一下。
Back
Back是一个GitHub开源的消息推送项目,简单来说就是通过下载一个App,然后网站调用App给的接口,就能将信息推送到你的iPhone手机上。
Back软件在苹果商店搜索即可 预计在2031年之前都是免费的。
支持GET POST请求
使用自带的服务器推送
我这里也简单的描述一下直接用App给的服务器推送
直接复制到浏览器执行即可
Your Key:自己下载Back软件自带
https://api.day.app/Your Key/测试内容
这种方式很简单也很快捷
自己搭建服务器推送
Docker部署
考虑到安全问题,你也可以自己搭建服务器进行推送,方法有很多种,我这里讲解的是使用Docker部署。
如果服务器的8080端口被占用,改成 8081:8080 更改前面的端口号即可,记得要放行端口!
docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server
运行完成后可以查看容器是否以及在运行
docker ps -a
可以看到我的是运行在9090端口的
CentOS 端口操作
放行端口:sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent
重新加载防火墙:sudo firewall-cmd --reload
查看放行端口:sudo firewall-cmd --zone=public --list-ports
测试部署
上述步骤完成后,就是测试了
输入curl localhost:8080/ping
命令进行测试,注意端口号为刚刚映射出来的端口,看图:
出现 code:200就行部署成功了。
测试成功后就可以放在自己的项目中去了
配置服务器
服务器搭建完成后,在App配置一下
地址可以为ip地址
配置完成就能使用了
运用在ZY知识库
public class HttpSend
{
public string Url { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
public interface IHttpService
{
Task<string> SendGetRequest(HttpSend httpSend);
Task<string> SendPostRequest(HttpSend httpSend);
}
public class HttpService : IHttpService
{
private readonly HttpClient _httpClient;
public HttpService(HttpClient httpClient)
{
_httpClient = httpClient;
}
public async Task<string> SendGetRequest(HttpSend httpSend)
{
string requestUrl = $"{httpSend.Url}/{httpSend.Title}/{httpSend.Content}";
HttpResponseMessage response = await _httpClient.GetAsync(requestUrl);
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
throw new HttpRequestException($"请求失败:{response.StatusCode}");
}
public async Task<string> SendPostRequest(HttpSend httpSend)
{
var httpContent = new StringContent(httpSend.Content, Encoding.UTF8, "application/json");
HttpResponseMessage response = await _httpClient.PostAsync(httpSend.Url, httpContent);
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
throw new HttpRequestException($"请求失败:{response.StatusCode}");
}
}
在配置文件中注入builder.Services.AddHttpClient<IHttpService, HttpService>();
GET请求
使用SendGetRequest
方法传入参数就行了
POST请求
GET 和Post在屏幕上显示效果一样,具体效果看你自己定义的内容
请求的图标也是可以更改的 ,我这里就不演示了。
group为分组,在App上可以分组查看推送的消息
private readonly IHttpService _httpService;
public LinkExchangeController(IHttpService httpService){
_httpService = httpService;
}
private async Task Send(string name,string link)
{
string jsonContent = JsonConvert.SerializeObject(new
{
body = $"网站名:{name}\n\n网址:{link}",
title = "友链申请通知",
group = "友链"
});
HttpSend send = new HttpSend()
{
Url = Url, //APP上的请求地址
Content = jsonContent
};
await _httpService.SendPostRequest(send);
}
效果展示
总结
Back 功能很强大可以加上推送标题、设置推送铃声、自定义推送图标等等功能,我这里只演示了最简单的推送内容,其他功能自行验证吧
关键代码:
- https://github.com/ZyPLJ/personalblog/blob/master/Personalblog/Controllers/LinkExchangeController.cs
- https://github.com/ZyPLJ/personalblog/blob/master/PersonalblogServices/HttpService.cs
参考链接
.NET个人博客-使用Back进行消息推送的更多相关文章
- iOS 10 消息推送(UserNotifications)秘籍总结(二)
背景 上一篇博客iOS 10 消息推送(UserNotifications)秘籍总结(一)发布后被 简书编辑推荐至首页,这着实让我受宠若惊啊.可是好事不长,后面发生了让我伤心欲绝的事,我的女朋友不要我 ...
- [入门到吐槽系列] 微信小程序 敏感违规图片检测 mediaCheckAsync,客服接口 消息推送 的各种坑分享!
前言: 最近需要做个用户上传图片,服务端校验图片问题的需求.需要使用小程序消息推送,异步接受腾讯的图片验证回调.实在太多坑了. 相信10分钟看完本文的朋友,可以非常顺利避坑. 前期准备: 首先需要一个 ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- 分分钟搞定IOS远程消息推送
一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远 ...
- Asp.net SignalR 实现服务端消息推送到Web端
之前的文章介绍过Asp.net SignalR, ASP .NET SignalR是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信. 今天我 ...
- IOS开发之实现App消息推送
转自:http://blog.csdn.net/shenjie12345678/article/details/41120637 第一部分 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps: ...
- Android消息推送——JPush极光推送
刚看了一篇关于Android消息推送评测总结的博客http://www.cnblogs.com/logan/p/4514635.html: 自己也对原学过的JPush极光进行一下小结,方便后续工作使用 ...
- IOS开发之实现App消息推送(最新)
好久没有写过博客啦,今天就由本菜鸟给大家做一个简单的IOSApp消息推送教程吧!一切从0开始,包括XCode6, IOS8, 以及苹果开发者中心最新如何注册应用,申请证书以及下载配置概要文件,相信很多 ...
- iOS 10 消息推送(UserNotifications)秘籍总结(一)
前言 之前说会单独整理消息通知的内容,但是因为工(就)作(是)的(很)事(懒)没有更新文章,违背了自己的学习的初衷.因为互联网一定要有危机意识,说不定眼一睁,我们就out丢了饭碗. 图片来源网络.jp ...
- iOS开发——消息推送跳转
项目开发用集成是极光推送JPush 这里主要是消息推送过来处理对应界面跳转 同时看到两篇写的不错的相关博客分享一下: http://www.jianshu.com/ ...
随机推荐
- Quartus prime 的安装步骤:
- Windows下绑定线程到指定的CPU核心
在某些场景下,需要把程序绑定到指定CPU核心提高执行效率.通过微软官方文档查询到Windows提供了两个Win32函数:SetThreadAffinityMask和SetProcessAffinity ...
- 在鼠标右键菜单中新增新建Markdown文件选项(VSCode)
引言 正常情况下,我们新建md文件有两种方式:一是通过Markdown编辑器新建,二是新建txt文件再修改后缀. 但是在Windows系统中,我们可以通过修改注册表来新增右键菜单选项.这里我们可以通过 ...
- java代码审计-某酒店管理系统
java代码审计-某酒店后台管理系统 目录 java代码审计-某酒店后台管理系统 1.简介 2.文件上传漏洞 3.CSRF漏洞 4.存储型XSS 1.简介 文章只作研究学习,请勿非法渗透测试: 该系统 ...
- go-admin migrate 数据表迁移
目录 视频教程 应用场景 目录说明 数据迁移 迁移步骤 配置数据库 常用命令示例 新建模型实例 3.1 方式一:不编译运行(推荐) 3.2 方式二:编译并运行迁移 3.3 方式三:golangIDE ...
- CSS样式(第三篇)
<div class="box1"> <div class="line"></div> <div class=&q ...
- fastposter v2.8.3 发布 电商海报生成器
fastposter v2.8.3 发布 电商海报生成器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.贰维海报,图片海报,分享海报贰维码推 ...
- JavaScript中对数组.map()、some()、every()、filter()、forEach的区别
1.区别说明 共同点: 不会对原数组发生修改,而是返回新的变量,用变量接收. 不同点: 1.some():返回一个Boolean类型变量,判断是否有元素符合func条件 2.every():返回一个B ...
- kapt构建报错
报错信息: Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodExce ...
- 解锁高效创新:IPD策略如何重塑产品开发流程
IPD(集成产品开发)涵盖了产品从创意提出到研发.生产.运营等,包含了产品开发到营销运营的整个过程.围绕产品(或项目)生命周期的过程的管理模式,是一套生产流程,更是时下国际先进的管理体系.IPD(集成 ...