app后端设计(3)--短信,邮件,推送服务(2014.12.05更新)

2023-05-16

在app的后端设计中,免不了消息的推送,短信,邮件等服务,下面就个人的开发经验谈谈这方面。

 

(1)最重要的是,各种推送一定要放在队列系统中处理,不然会严重影响api的响应时间。

 

(2)短信方面

 

    以前我们是用亿美软通的短信服务,但在三大运营商收紧了短信服务后,亿美软通的短信延迟非常厉害,后来我们找到了这家短信服务商 http://luosimao.com,这家发送短信到联通,电信,移动手机很快就到了(直到2014.01.24)。

 

    如果发送到移动的短信还没有改善,最后的后备方案:发送到联通,电信的短信使用国内的服务商,发送到移动的短信就只能使用国外的短信服务商(国外发短信到移动手机3毛一条,好贵啊!!!)

 

注:现在sharesdk提供了免费的短信验证码服务(http://mob.com/sms),试运营期间为开发者提供每个App每天10000条免费短信验证。


(3)邮件

 

    在一开始时使用服务器自身的postfix发送邮件的,但我们发现邮件被很多邮件服务商当成垃圾邮件了,而且没有重发机制,不能保证邮件的准确到达。

    后来查了一下各大网站,发现知乎和github 都是使用http://www.mailgun.com/ 的邮件服务,看了一下文档,价格很公道,而且每月有1万封的免费邮件额度,非常适合创业型的公司。

 

(4)推送服务

 

    在这方面,我考虑的重点是:在创业初期,能用第三方就尽可能多使用第三方的服务,自身只处理业务逻辑本身,快速的开发产品。

 

android篇:

 

android方面,我们使用过3种消息推送机制:

1.极光推送,现在放弃了。我们使用的过程中,发现极光的机制有点古怪,一般来说,一个app在极光服务器中是固定一个id,但在极光中是通过广播来通知app这个id,而且在文档中居然说明这个id会不定期变化。

2.openfire服务器。app通过连接openfire服务器来获取各种消息,但是openfire有个机制,当app连接openfire后空闲就自动断开,没法保持连接的的稳定性,而修改这个openfire的机制成本太高了,后来也放弃使用openfire。

3.百度推送。已现在使用一段时间的情况来说,推送及时快速,挺满意百度的推送服务。

 

iphone篇:

 

apns是iphone推送的不二选择。但如果自身开发apns的服务,会遇到无效token而需要重发,这样需要维护一个队列并建立重发机制,考虑到项目的时间和研发成本,最后也是使用了百度推送的服务。

 

当用户在iphone上卸载了app后,device token会失效,所以应该定期访问苹果的feedback服务器,把无效的token去掉。

 



app后端系列文章总目录


 



///

修改记录:

2014.01.24:短信服务提供商现在3大运营商很快就收到了。

2014.12.05:增加了sharesdk的免费短信验证码信息


如果您觉得这系列的文章对你有所帮助,欢迎打赏。
支付宝账号:190678908@qq.com 收款人:曾健生


[文章作者]曾健生

[作者邮箱]h6k65@126.com

[作者QQ]190678908

[新浪微博] @newjueqi

[博客]http://blog.csdn.net/newjueqi

          http://blog.sina.com.cn/h6k65

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

app后端设计(3)--短信,邮件,推送服务(2014.12.05更新) 的相关文章

  • ClickHouse服务端配置最佳实践

    安装好ClickHouse xff0c 需要对服务和用户进行配置 本文介绍ClickHouse建议配置方式 xff0c 配置项修改后是否需要重启 xff0c 另外还提供一些实例配置加深理解 独立自定义配置 Clickhouse 服务端配置包
  • 2014年度总结——软件产品化的简要理解

    2014年度总结 软件产品化的简要理解 2014年转瞬即逝 xff0c 真是让人感慨 xff0c 岁月不是一天天在逝去 xff0c 而是一年年 xff1b 总结一年的工作非常有意义 xff0c 觉得今年最大的变化就是从定制软件到产品化的过度
  • R语言中mean函数

    mean函数是求算术平均值 用法 xff1a mean x trim 61 0 na rm 61 FALSE x是数值型 逻辑向量 trim表示截尾平均数 xff0c 0 0 5之间的数值 xff0c 如 xff1a 0 10表示丢弃最大1
  • 使用Spring @DependsOn控制bean加载顺序

    使用Spring 64 DependsOn控制bean加载顺序 spring容器载入bean顺序是不确定的 xff0c spring框架没有约定特定顺序逻辑规范 但spring保证如果A依赖B 如beanA中有 64 Autowired B
  • 使用R中merge()函数合并数据

    使用R中merge 函数合并数据 在R中可以使用merge 函数去合并数据框 xff0c 其强大之处在于在两个不同的数据框中标识共同的列或行 如何使用merge 获取数据集中交叉部分 merge 最简单的形式为获取两个不同数据框中交叉部分
  • 介绍java中Pair

    介绍java中Pair 在这篇文章中 xff0c 我们讨论了一个非常有用的编程概念 xff0c 配对 Pair 配对提供了一种方便方式来处理简单的键值关联 xff0c 当我们想从方法返回两个值时特别有用 在核心Java库中可以使用配对 Pa
  • python numpy 中linspace函数

    python numpy 中linspace函数 numpy提供linspace函数 有时也称为np linspace 是python中创建数值序列工具 与Numpy arange函数类似 xff0c 生成结构与Numpy 数组类似的均匀分
  • 把文件夹里的文本批量替换内容

    下面的例子 xff0c 把 tmp task文件夹里 xff0c 所有文本文件中的 10 10 10 10 替换为 20 20 20 20 sed i 34 s 10 10 10 10 20 20 20 20 g 34 96 grep rl
  • openssl生成RSA私钥

    openssl OpenSSL gt genrsa out app private key pem 2048 默认生成PKCS 1的私钥 xff0c 2048表示私钥的长度 xff0c 我们建议是2048位 xff0c 这样安全 xff0c
  • ubuntu Ad-Hoc组网通信

    目录 WIFI通信的多种组网方式 1 AP模式 2 Ad hoc模式 ubuntu18配置ad hoc模式 WIFI通信的多种组网方式 1 AP模式 最常用的模式 xff0c 需要一个节点 xff08 一般是路由器 xff09 作为AP x
  • github中误上传,文件夹中包含.git,导致没法上传里面文件的方法

    假设包含 gi的文件夹为vendor github com 360EntSecGroup Skylar excelize xff0c 则可以 xff1a span class token function git span span cla
  • bluehost虚拟主机的301重定向<原创>

    http www bluehost cn com bluehost domain redirects 出于SEO PR值传递 网址转换的目的 xff0c 在网站初建和网站迁移时我们都需要使用301重定向 xff0c 通常包括域名对域名 xf
  • 一个很全部的验证手机号码的函数

    验证手机号是否正确 64 author 曾健生 64 param unknown type mobile public function validateMobile mobile 手机号码 移动 xff1a 134 0 8 135 136
  • .htaccess:正则表达式、重定向代码

    http codeyun com zonghe 235 html 位于行首时表示注释 F Forbidden xff08 禁止 xff09 命令服务器返回 403 Forbidden错误给用户浏览器 L Last rule xff08 最后
  • .htaccess技巧: URL重写(Rewrite)与重定向(Redirect)

    http lesca me archives htaccess rewrite html comment page 1 comment 16045 目录 Table of Contents 一 准备开始 xff1a mod rewrite
  • es实现mysql like的查询

    es中需要先安装中文分词插件ik 如果之前有这个索引 xff0c 需要先删除索引 DELETE lepeng 创建一个索引 PUT lepeng 指定索引的格式 ik max word 将文本做最细粒度的拆分 ik smart 会做最粗粒度
  • mysql错误:Error 1045: Access denied for user 的解决

    golang中 xff0c 在程序中配置的mysql地址是 xff1a 10 10 10 131 但是程序链接mysql时返回的错误是如下 xff1a Error 1045 Access denied for user 39 root 39
  • php代码解决跨域问题

    header 34 Access Control Allow Origin 34 header 34 Access Control Allow Methods OPTIONS GET POST DELETE PUT 34 header 34
  • 解决“Let‘s Encrypt“ 证书过期的错误消息

    https www cnblogs com tutuye p 11589546 html https manuals gfi com en kerio connect content server configuration ssl cer
  • 转:ubuntu22.04桌面版开启root用户登陆并开启root用户远程ssh连接

    https yunml blog csdn net article details 127145272

随机推荐

  • ROG配置ubuntu20.04.5双系统要点

    win11 43 ubuntu20 04 5 1 BIOS设置 开机长按F2进入bios设置 xff0c 修改advanced参数 xff1a boot gt 关闭fast bootsecurity gt 关闭secure boot设置VM
  • 《自己动手写Docker》书摘之一: Linux Namespace

    Linux Namespace 介绍 我们经常听到说Docker 是一个使用了Linux Namespace 和 Cgroups 的虚拟化工具 xff0c 但是什么是Linux Namespace 它在Docker内是怎么被使用的 xff0
  • app后端设计(1)--api(2014.01.31更新)

    1 Restful设计原则 Restful风格 xff1a RESTfu设计原则 它被Roy Felding提出 xff08 在他的 基于网络的软件架构 论文中第五章 xff09 而REST的核心原则是将你的API拆分为逻辑上的资源 这些资
  • [How To] Remove deleted records from Main Index in Sphinx

    http www sanisoft com blog 2013 06 28 remove deleted records in sphinx The problem You probably landed here searching fo
  • 左右值无限分类实现算法[转]

    http www jcwcn com archiver tid 227253 html 一 引言 产品分类 xff0c 多级的树状结构的论坛 xff0c 邮件列表等许多地方我们都会遇到这样的问题 xff1a 如何存储多级结构的数据 xff1
  • 给xmpphp添加了几个常用的方法

    给xmpphp添加给了以下的常用方法 xff1a registerNewUser 注册一个新用户 addRosterContact 发送添加好友的请求 accept friend request 接受好友请求 deleteRosterCon
  • app后端设计(2)--xmpp的使用(2014.01.14更新)

    在app中有时候是需要添加聊天服务 xff0c 在这里谈谈曾经开发聊天服务的经验 xff1a xff08 1 xff09 聊天服务端选的openfire xff0c 这是一个基于xmpp协议的聊天服务器 xff08 XMPP是一种基于XML
  • Nginx Location配置总结

    http blog sina com cn s blog 97688f8e0100zws5 html 语法规则 xff1a location 61 uri 61 开头表示精确匹配 开头表示uri以某个常规字符串开头 xff0c 理解为匹配
  • Nginx 下配置SSL证书的方法

    http www jb51 net article 24629 htm 默认 Nginx 是没有 ssl 模块的 xff0c 而我的 VPS 默认装的是 Nginx 0 7 63 xff0c 顺带把 Nginx 升级到 0 7 64 并且
  • 使用nginx搭建https服务器

    http www cnblogs com tintin1926 archive 2012 07 12 2587311 html 最近在研究nginx xff0c 整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的 xff0c 防止中
  • Nginx与Lua

    http www cnblogs com xd502djj archive 2012 11 20 2779598 html 今天安装lua试试 xff0c 这个从开始装的 xff0c 发现一篇文字 xff0c 字数虽少 xff0c 但是却讲
  • MYSQL的空间查询

    http blog sina com cn s blog a48af8c001018q1p html 本文将向各位介绍如何使用MySql5 x中的空间数据库 xff0c 并展示一下它高效的性能 xff08 前提是正确使用 xff09 本文适
  • APM飞控使用动捕等外部定位

    本文初次写于2023 03 03 xff0c pixhawk飞控应该是刷写了ArduPilot 4 1以上的版本 机载计算机通过WIFI和vrpn ros client获取动捕系统 xff08 vicon或者nokov xff09 的无人机
  • APNS导致消息丢失和发送效率原因

    http blog csdn net tlq1988 article details 9612237 首先说明一下 xff0c 本文只是介绍一些容易被开发者忽视 xff0c 而导致性能低下问题 并不是介绍如何向苹果设备成功发送一条消息 xf
  • 苹果通知推送服务(APNS)一些关键特性摘要

    http ramosli iteye com blog 1940843 前段时间 xff0c 仔细研究了APNS的文档 xff0c 把一些关键的地方记录了下来 xff0c 弄懂这些对于理解APNS的规则 xff0c 至关重要 1 If AP
  • 陌陌架构分享 – Apple Push Notification Service

    http blog latermoon com p 61 878 先描述下基本概念 xff0c 标准的iPhone应用是没有后台运行的 xff0c 要实现实时推送消息到手机 xff0c 需要借助Apple提供的APNS服务 iPhone会和
  • CentOS安装JAVA

    http hermosa young iteye com blog 1798026 每次都要搜索一下太麻烦了 xff0c 留个底 xff0c 方便以后查询 一般情况下 xff0c 我们都要将linux自带的OPENJDK卸载掉 xff0c
  • openfire推送离线聊天信息的插件

    插件说明 在手机的聊天应用中 xff0c 经常出现的一个需求就是把用户的离线消息通过推送系统推送到用户的手机上 xff0c 为了实现这个功能 xff0c 本人就开发了本插件 xff0c 这个openfire 插件是拦截了发给openfire
  • APNs 推送原理及问题

    http bbs csdn net topics 390461996 在 iOS 平台上 xff0c 大部分应用是不允许在后台运行并连接网络的 在应用没有被运行的时候 xff0c 只能通过 Apple Push Notification S
  • app后端设计(3)--短信,邮件,推送服务(2014.12.05更新)

    在app的后端设计中 xff0c 免不了消息的推送 xff0c 短信 xff0c 邮件等服务 xff0c 下面就个人的开发经验谈谈这方面 xff08 1 xff09 最重要的是 xff0c 各种推送一定要放在队列系统中处理 xff0c 不然