首页 > 其他分享 >.NET个人博客-使用Back进行消息推送

.NET个人博客-使用Back进行消息推送

时间:2023-07-15 14:35:22浏览次数:37  
标签:httpSend -- Back public NET 推送 response

使用Back推送消息到你的iPhone

前言

我的好友看了我的博客,给我提了个需求,让我搞个网站通知,我开始以为就是评论回复然后发送邮件通知。不过他告诉我网站通知是,当有人评论或者留言后,会通知到我这边来,消息是实时通知的,他说用的是Back,不需要发邮件,然后发了个GitHub链接给我,我觉得还不错,下面开始实操一下。

Back

Back是一个GitHub开源的消息推送项目,简单来说就是通过下载一个App,然后网站调用App给的接口,就能将信息推送到你的iPhone手机上。

GitHub地址:Finb/Bark: Bark is an iOS App which allows you to push custom notifications to your iPhone (github.com)

Back软件在苹果商店搜索即可 预计在2031年之前都是免费的。

支持GET POST请求

使用自带的服务器推送

我这里也简单的描述一下直接用App给的服务器推送

image

直接复制到浏览器执行即可

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

image

可以看到我的是运行在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命令进行测试,注意端口号为刚刚映射出来的端口,看图:

image

出现 code:200就行部署成功了。

测试成功后就可以放在自己的项目中去了

配置服务器

服务器搭建完成后,在App配置一下

地址可以为ip地址

image

配置完成就能使用了

image

运用在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);
    }

效果展示

image

image

总结

Back 功能很强大可以加上推送标题、设置推送铃声、自定义推送图标等等功能,我这里只演示了最简单的推送内容,其他功能自行验证吧

标签:httpSend,--,Back,public,NET,推送,response
From: https://www.cnblogs.com/ZYPLJ/p/17556079.html

相关文章

  • .Net FrameWork下面如何生成AOT呢?
    前言其实AOT预编译,在.NetFrameWorker1.0里面就有了。它叫做Ngen,只不过当时叫做生成本机映像,实际上还是一个东西,也就是预编译。本篇来看下。原文:.NetFramework生成AOT概括1.介绍现在的现代化的.Net已经到了.Net8了,它的AOT程序已经趋近于完美。可以单个Exe运行在MacOS/Linux/W......
  • 将gephi文件导入到networkx中使用
    最近基于Transbigdata库编写代码获取了某市轨道交通网络的邻接表及shp文件,并使用Gephi对轨道交通网络进行了可视化处理,之后想尝试一下把Gephi的成果快捷地转为networkx格式来计算各种指标,编写了一些代码,步骤如下:1.将gephi成果导出打开gephi文件后点击文件—输出—图表文件选择......
  • 推荐一款.NET开源的轻量级分布式服务框架
    前言今天要给大家推荐一款由新生命开发团队开源的.NET轻量级分布式服务框架:星尘分布式平台(NewLife.Stardust)。项目介绍星尘是一个轻量级分布式服务框架。它的功能包含配置中心、集群管理、远程自动发布、服务治理、服务自动注册和发现、负载均衡、动态伸缩、故障转移、性能监控......
  • kubernetes之 认证和serviceaccount
    第十部分认证和serviceaccount前面讲的都是admin超级用户在操作k8s,Kubectl不能所有人都可以使用和访问。用户访问逻辑图,认证:第一种令牌认证token,最简单的认证,(只需要对方认证的共享密钥即可)服务器需要认可客户端的证书。授权:RBAC,基于角色的访问控制,目前用的比较多。    ......
  • 基于ASP.NET学生故障管理系统
    系统功能模块设计1.系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和验证码,然后对登录进来的用户判断身份信息,判断是管理员用户还是普通用户。2.系统用户管理:不管是超级管理员还是普通管理员都需要管理系统用户,包括普通管理员的添加、删除、修改、查询,修改......
  • kubernetes之 statefulset控制器
    第九部分statefulset控制器参考:https://blog.csdn.net/styshoo/article/details/73731993     https://blog.51cto.com/xuexinhuan/5424144即便是有状态管理,也需要使用脚本来运维。CoreOS:OperatorStatusfulSet:有状态Cattle,petPetSet->StatefulSeta、稳定......
  • TryHackMe | Skynet
    TryHackMe|Skynet信息收集nmap枚举,139/445端口开放,可知目标机开启了SMB服务dirsearch扫描Task1Deployandcompromisethevulnerablemachine!枚举SMB共享smbclient-L\\ip或者输入enum4linux-S$ip 密码那里直接按回车就行获取到一些可能能访问的SMB服......
  • Json.NET反序列化漏洞生成Ysoserial攻击Payload
    Ysoserial.Net只提供序列化之后的Payload主体,具体执行的命令从外部输入,实现代码清单如下Stringpayload=@"{    '$type':'System.Windows.Data.ObjectDataProvider,PresentationFramework,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35',  ......
  • kubernetes网络模式
     一个K8s的集群中至少有三个网络:集群节点所在的网络,这个网络就是你的主机所在的网络,通常情况下是你的网络基础设施提供。如果你的node处于不同的网段,那么你需要保证路由可达。如上图中的192.168.10.0/24和10.0.0.0/8这两个网络第二个网络是Pod的网络,K8s中一个Pod由多个......
  • Ubuntu部署Kubernetes
    Docker安装信任Docker的GPG公钥:curl-fsSLhttps://repo.huaweicloud.com/docker-ce/linux/ubuntu/gpg|sudoapt-keyadd-`添加软件仓库:sudoadd-apt-repository"deb[arch=amd64]https://repo.huaweicloud.com/docker-ce/linux/ubuntu$(lsb_release-cs)stable"......