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

客户 0 93

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

服务器如何及时通知客户端
导读:如何实现服务器向客户端发出一条通知?当向服务器数据库插入一条数据时,服务器就向客户端发出一条信息,让客户端及时知道;如何实现呢?能描述清楚点吗?问题太大概了吧。向客户发送消息的sendMessage方法是不是已经准备好了?那接下来就是选择在

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

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

如何实现呢?

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

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

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

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

java消息推送websocket实现原理:在实现websocket连线过程中,需要通过浏览器发出websocket连线请求,然后服务器发出回应,这个过程通常称为“握手” 。在 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

在以前的消息推送机制中,用的都是 Ajax 轮询(polling),在特定的时间间隔由浏览器自动发出请求,将服务器的消息主动的拉回来,这种方式是非常消耗资源的,因为本质还是http请求,而且显得非常笨拙。而WebSocket 在浏览器和服务器完成一个握手的动作,在建立连接之后,服务器可以主动传送数据给客户端,客户端也可以随时向服务器发送数据。

WebSocket协议是基于TCP的一种新的网络协议。实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。也可以选择第三方推送平台来实现,比如极光推送就不错。