服务器如何及时通知客户端

服务器如何及时通知客户端,第1张

如何实现服务器客户端发出一条通知?
当向服务器数据库插入一条数据时,服务器就向客户端发出一条信息,让客户端及时知道;
如何实现呢?
能描述清楚点吗?问题太大概了吧。
向客户发送消息的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的,轮询会对服务器有压力,有什么技术更好的?
客户端只设置两个,每分钟访问服务器一次,这样服务器的压力应该不大吧?

本文通过一个实际的场景来介绍在前后端分离的项目中通过 WebSocket 来实现服务器端主动向客户端发送消息的应用。主要内容如下

Websocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 连接成功后,服务端与客户端可以双向通信。在需要消息推送的场景,Websocket 相对于轮询能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

具体如下特点

在客户端的列表数据中有个 status 字段,服务器端需要花费较长的时间进行处理,处理完成后才会更新对应数据的 status 字段值,通过 Websocket 的处理流程如下:

通过注入 ServerEndpointExporter 类,用于在项目启动的时候自动将使用了 @ServerEndpoint 注解声明的 Websocket endpoint 注册到 WebSocketContainer 中。

为什么增加一个 ServerEndpointExporter Bean,并通过在一个类上增加 @ServerEndpoint 和 @Component 注解就可以实现服务器端 Websocket 功能,这里简单解析一下。

java 定义了一套 javaxservlet-api, 一个 >如果你是 安卓客户端 用webview 打开一个html页面, 那你就去搜 WEB推送。
如果是 安卓原生应用的话,你应该挂一个长连接 都服务端,然后服务端推送信息即可。有很多提供推送功能,即时通讯,的都可以, 个推,xmpp协议是即时通讯的协议,实现这样功能的服务器,也可以满足你这个要求。有很多这样的协议,我也记不住那么多。如果你要自己写的话,可以用下mina,跟netty吧。以前我跟我同事用过mina做安卓的推送。

可以使用第三方消息推送软件。目前市面上的推送软件很多,但是是选择的时候一定要选择正规的,也可以在使用前都去了解一下消息推送软件相关的信息。
推送软件的技术是通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。
对于第三方消息推送软件的选择,推荐你使用深圳极光家的消息推送软件。中国领先的移动开发者服务提供商极光,极光将为兴盛优选APP提供多样化服务,助力其优化用户体验,提升用户转化,激活流量价值。
极光的一键登录功能将助力兴盛优选APP的用户实现高效、安全稳定的登录过程,优化用户体验,有效提升APP的用户转化和留存率。

Android消息推送,基本上都是以长链接的方式实现的,其原理是客户端主动和服务器建立TCP长链接,长链接建立之后,客户端定期向服务器发送心跳包用于保持链接,当有消息要发送的时候,服务器可以直接通过这个已经建立好的长链接,将消息发送到客户端。

Android端可以通过两种方式实现消息推送,一种是自建推送平台,但这种方式耗时耗力成本高,且长链接的稳定性和存活性难以保障;另外一种是直接选用像个推这样的第三方消息推送供应商。开发者只需要集成个推消息推送SDK,即可简单、快捷地实现Android平台的消息推送功能,有效提高产品活跃度、增加用户留存。此外,个推消息推送在消息推送的基本性能上,如省电省流量、长链接稳定性、推送速率、安全性等方面都具有领先业内的优势。

如果您对个推消息推送感兴趣,欢迎您前往个推开发者中心免费注册体验。

个推消息推送工作原理

应该是客户端主动定时去连服务器端,这种 *** 作最好要让用户知道第二个问题应该是不是在用户连接到手机时,存到一个地方,或者内存中,或者数据库中但是现在的需求是当数据库有更新时就要主动发送一个更新通知给所有的客户端,然后客户端接到这个通知后才到服务器端取数据。你说的那是轮询,暂时还不想用这种方法,呵呵。问题补充:laorer 写道如果你只是想把消息发给现在在线的用户的话,那么客户端肯定需要一个监听程序,来监听来自服务器的消息,而服务端则在有新数据时,检查在线的用户并获取相关信息,然后发个消息给客户端的监听端口android是linux内核的,而且能连网络,那么肯定是要端口来连接的,这是我的推测,没有去找相关的资料如果是手机的话,是不是会发条短信给手机,毕竟这样不需要知道IP之类的东西浏览器请求服务时,肯定是浏览器定时去服务器请求的,才可能知道有没有新的内容关于在Android手机端开放监听端口,我再研究一下,值得借鉴。问题补充:laorer 写道如果你是自己来管理这些的话,那么当用户连接到服务器时,你需要把用户的这些内容写到服务器的文本或者数据库或者直接保存到内存中,然后用户断开后,把相应的用户信息删掉这样当数据库有新消息时,你可以从保存用户信息的地方得到所有的连线用户,发消息给用户的话,就是把消息发给用户的IP和监听端口,如果客户端有>Socket通信的原理还是比较简单的, 它大致分为以下几个步骤。 服务器端的步骤如下。 (1)建立服务器端的Socket,开始侦听整个网络中的连接请求。 (2)当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端之间的

取决于推送服务器和客户端,有以下两种方法:

1、web app 。可以用ajax,也可以用websocketwin app 。

2、这种情况做一个服务端,接受到订餐请求Socket发送到商家(商家如果在线,如果不在的话做好预备推送功能)。如果情况不允许,使用>


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存