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

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

1、打开应用时向服务器发申请

2、如果应用一直打开,或者有后台服务,可以定时向服务器发申请

Google本身就有一个推送demo可以用,Google Cloud Message,你可以参考一下,不过国内用Google推送不太稳定,但是我测试的时候基本上都能推送成功。详细的搭建你可以参考我的微博,有什么问题你再问吧

C/S 架构C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。

C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。C/S 架构的优缺点优点:

1C/S架构的界面和操作可以很丰富。

2安全性能可以很容易保证,实现多层认证也不难。

3由于只有一层交互,因此响应速度较快。缺点:

1适用面窄,通常用于局域网中。

2用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。

3维护成本高,发生一次升级,则所有客户端的程序都需要改变。 B/S架构B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。

B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。B/S架构的优缺点优点:

1)客户端无需安装,有Web浏览器即可。

2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。

3)BS架构无需升级多个客户端,升级服务器即可。缺点:

1)在跨浏览器上,BS架构不尽如人意。

2)表现要达到CS程序的程度需要花费不少精力。

3)在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。

4)客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

这实际上是CS编程理念的东西。在CS概念中,S端不需要知道所有C端的具体信息,因为一个S对应多个C,而C也不能保障有固定的网络地址。因此S端的逻辑,就是:监听&响应。这和C端编程有很大不同(其实多数不同是因为概念问题,而不是代码问题),我给你的建议就是,不要试图使用C端的逻辑去尝试S端,这样不会是一个很好的S端程序,作为初学者,先尝试按照标准逻辑实现程序之后,再尝试花样比较好,而Server端的编程,比客户端更有完整的逻辑流程,还是先根据标准流程走吧。简单的说,CS的逻辑就是,在C没有消息的时候,S不知道C在哪里,因此标准C逻辑不适合S端。

如何实现服务器向客户端发出一条通知?

当向服务器数据库插入一条数据时,服务器就向客户端发出一条信息,让客户端及时知道;

如何实现呢?

能描述清楚点吗?问题太大概了吧。

向客户发送消息的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的,轮询会对服务器有压力,有什么技术更好的?

客户端只设置两个,每分钟访问服务器一次,这样服务器的压力应该不大吧?

MyClient中的

String w = inreadLine();

这一句,调到

Systemoutprintln(w);前

就可以了。

你的想法是向SERVER发一个消息,SERVER回一个消息。

但你的CLIENT还没有发消息,你就开始接收,自然接收不到消息,程序就挂在那了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么实现服务器给android客户端主动推送消息

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情