怎么实现服务器给android客户端主动推送消息

怎么实现服务器给android客户端主动推送消息,第1张

一、消息推送基础
消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息
当我们开发需要和服务器交互的移动应用时,基本上都需要和服务器进行交互,包括上传数据到服务器,同时从服务器上获取数据。
一般情况下,客户端与服务器之间通讯客户端是主动的,但这就存在一个问题就是一旦服务器数据有更新或者服务器要下发通知给客户端只能等客户端连接的时候才能实现。这种方式使消息失去了实时性。
如何使客户端能够实时的收到服务器的消息和通知,总体来说有两种方式,第一种是客户端使用Pull(拉)的方式,就是隔一段时间就去服务器上获取一下信息,看是否有更新的信息出现。第二种就是 服务器使用Push(推送)的方式,当服务器端有新信息了,则把最新的信息Push到客户端上。这样,客户端就能自动的接收到消息。 
虽然Pull和Push两种方式都能实现获取服务器端更新信息的功能,但是明显来说Push方式比Pull方式更优越。因为Pull方式更费客户端的网络流量,更主要的是费电量,还需要我们的程序不停地去监测服务端的变化。  
二、几种常见的解决方案实现原理
1)轮询(Pull)方式:客户端定时向服务器发送询问消息,一旦服务器有变化则立即同步消息。
2)SMS(Push)方式:通过拦截SMS消息并且解析消息内容来了解服务器的命令,但这种方式一般用户在经济上很难承受。
3)持久连接(Push)方式:客户端和服务器之间建立长久连接,这样就可以实现消息的及时行和实时性。

This problem can be said is unprecedented No latecomers, answer the Chinese civilization for five thousand years, every year have a explain yourself, then later overturned, re established, so repeatedly complex for thousands of years, you are so lucky, today, I can tell you a standard answers, at least 5000 years won't be overthrown, that card is the kingly way

在“Message”后的框中输入欲发送信息的标题,其下的框中输入正文。如果有必要,选中“URL Button”(网址按钮),在其后的框中输入网站说明,其下的框中输入网站地址。然后,再选是将此信息发送给“Offline Or Online Users”(所有在线和离线的用户),还是只将它发送给“Online Users”(在线用户)。最后按“Broadcast Message”将信息发送出去。“Server Messages History”为以前所发送的所有信息的历史记录,选中相应记录后再按“Delete”按钮即可删除它,按“Copy”键可将它再复制到上面相应栏目中,以便再次发送。服务器端的信息发送后,客户端就会收到信息。

如何实现服务器向客户端发出一条通知?
当向服务器数据库插入一条数据时,服务器就向客户端发出一条信息,让客户端及时知道;
如何实现呢?
能描述清楚点吗?问题太大概了吧。
向客户发送消息的sendMessage方法是不是已经准备好了?
那接下来就是选择在程序中100%确定已经向数据库插入了数据的地方调用sendMessage方法。
简单的实现可以用js的alert方法。
执行数据库插入 *** 作,后返回值,js判断,根据返回的值,如果插入成功,则alert('插入成功')
ejb的拦截器应该能实现,给向数据库插入数据的这个方法加个拦截器,在这个拦截器类里边先调用这个方法,然后实现向客户端发消息
得看你做B/S还是C/S
看不懂说的啥。。
在消息库里插一条 消息数据。 再查询出来 不就好了。 这是简单的方式咯。 复杂点就用推送技术吧
基本上就两招:
要么是 短连接下的客户端发起轮询 模型;
要么是 长连接下的服务器端主动推送 模型。
C/S没玩过,B/S用过推模式,比轮询要好的多
我现在用的数据库连接字符串是private static string conStr = @"Data Source=192168137,1611;Initial Catalog=QLYM;User ID=sa;Pwd=system";这是局域网的!那连接服务器数据库应该什么写呢?
当服务器数据库数据有更新时,客户端如何及时知道?客户端是client的,轮询会对服务器有压力,有什么技术更好的?
客户端只设置两个,每分钟访问服务器一次,这样服务器的压力应该不大吧?

极光推送分为客户端跟服务端。客户端需要集成极光推送的sdk做监听并处理。服务端可以通过sdk方法调用或通过读接口的形式发送到指定客户端。发送凭证是客户端生成的一个标识id,可以要求在登录或注册时传过来进行绑定。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13281505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-07
下一篇 2023-07-07

发表评论

登录后才能评论

评论列表(0条)

保存