`

关于消息实时接收的问题

    博客分类:
  • java
阅读更多
  •   系统有这样一个需求,我在服务器端 写入一条消息发送给用户,记录在Oracle表中-
  • ,客户端怎么能实时响应,也就是说,弹出一个像qq的消息框 ,客户端大概有200来人,且同时在线的,如果客户端每次查询数据库看有没有自己的消息,有就弹出来,这是不是对性能有影响呢,能不能用其他的方式写咯 ,很迷惘

 
分享到:
评论
28 楼 抛出异常的爱 2010-10-26  
wujiazhao88 写道
如何实时推送数据?保持长连接,客户端想服务器发起请求数据, 服务器收到请求先不返回,等有更新了再返回, 客户端收到response了就更新页面数据,然后再像服务器发送请求,不断循环.对于高并发的应用, 长连接会很蛋疼!线程不够用的.

nio可以让蛋痛少些.....
200就算不nio也就是将将支持不了...
PS:弹出之前不要用长连接....轮询就够了.
只有对话模式时时需要低于1分钟的才有必要用长连接.
27 楼 gyuxuan 2010-10-26  
jms的订阅、发布模式,或者MQ,
oracle的触发器也是一个思路,消息生成时根据订阅列表推送消息。
推送比主动获取要灵活。
26 楼 maoqiang569 2010-10-22  
最好的做法是让服务器端通知你,你可以用red5服务器+flex来实现一下
25 楼 kimmking 2010-10-21  
dwr
flex+blazeds
或者自己做ajax轮询
24 楼 sankooc 2010-10-21  
robin_leung 写道
comet

23 楼 seaizon 2010-10-21  
采用 apache的mq保存从数据库接受到的数据,在服务器上缓存保存mq接受的数据,客户端采用ajax实时连接获取缓存的数据,如果数据有变化生成结果,没有变化不需要刷新结果。
22 楼 gougou851129 2010-10-21  
JMS or comet
21 楼 zhao0p 2010-10-21  
wujiazhao88 写道
如何实时推送数据?保持长连接,客户端想服务器发起请求数据, 服务器收到请求先不返回,等有更新了再返回, 客户端收到response了就更新页面数据,然后再像服务器发送请求,不断循环.对于高并发的应用, 长连接会很蛋疼!线程不够用的.


有种思想叫分布式应用,有种分布式应用框架叫SOA,有种SOA框架实现叫SCA、ESB,如果用户量大、线程多,可以考虑分布式部署,相信能解决你提出的线程问题。问题就是现在需要提出一个比推模式更好的方式
20 楼 wujiazhao88 2010-10-21  
如何实时推送数据?保持长连接,客户端想服务器发起请求数据, 服务器收到请求先不返回,等有更新了再返回, 客户端收到response了就更新页面数据,然后再像服务器发送请求,不断循环.对于高并发的应用, 长连接会很蛋疼!线程不够用的.
19 楼 笑我痴狂 2010-10-21  
思路一:存在application中  不用插入数据库

思路二:用户登录的时候请求一次  看是否有消息  写个后台线程  检测用户是否在线
        只有在线的情况下  每个几分钟连接一次数据库,看是否有新消息

18 楼 coolbaby1984514 2010-10-21  
呵呵
你给oracle 常见一个触发器,
当你向信息表插入新数据的时候激活,
然后获取到一些需要的数据,调用程序的一个ws,传递过去必要的参数。
ws 的职责呢 就是根据获取到的信息 来判断给那个用户发送信息 提醒他有新消息

哈哈! 一个小思路而已!!
17 楼 zhao0p 2010-10-21  
可以使用ajax服务器推模式,使用ajax框架去做,DWR处理挺简单的,推模式就是反向的ajax机制。通俗点:ajax可以客户端异步的去访问服务器,那么反向的ajax(推模式),服务端也可以异步访问客户端。
当发送新消息时,触发消息推送到客户端,数据库中只是留痕、备查。试试吧。这种方式实现BS即时聊天,webQQ等。
16 楼 JavaLanguageFun 2010-10-21  
JavaLanguageFun 写道
greatghoul 写道
在Application中放置一个Map,以及用户标识为键,值为一个消息列表,添加消息时,顺便在列表里面也添加一份,用户每隔一段时间读自己的列表,有东西的话,读一条删除一条。

用户没有上线就不用塞了。

只是个思路而已。

我测试一下 呵呵 不好意思啊!

我还测试一下
15 楼 JavaLanguageFun 2010-10-21  
greatghoul 写道
在Application中放置一个Map,以及用户标识为键,值为一个消息列表,添加消息时,顺便在列表里面也添加一份,用户每隔一段时间读自己的列表,有东西的话,读一条删除一条。

用户没有上线就不用塞了。

只是个思路而已。

我测试一下 呵呵 不好意思啊!
14 楼 javazeke 2010-10-21  
用服务端推送数据技术
13 楼 Kensai 2010-10-21  
看楼主怎么选了,一般来说两种方法
1。 客户端长轮询       就和普通查数据没啥区别了
2。 服务器-客户端长连接 这个可以直接用pushlet做很简单,但是性能有点恼火
12 楼 yunzhongxia 2010-10-21  
推荐你一个方案:Flex+Blazeds+JMS,我们的系统现在就是这样做的。有关Blazeds的东西可以参考我的博客。
11 楼 afei1689 2010-10-21  
这是实时web的需求,可以看一下这里;http://afei1689.iteye.com/blog/763953,webmq很好解决 这个问题
10 楼 kala888 2010-10-21  
用commit。
或者就是简单轮训就行,才200人,鸭梨应该不会太大。。。
9 楼 wujiazhao88 2010-10-21  
心`跳`包

相关推荐

    实时接收发送消息(接收消息线程阻塞,发送消息线程唤醒)

    在标题和描述中提到的“实时接收发送消息(接收消息线程阻塞,发送消息线程唤醒)”是一个典型的并发编程问题,涉及到线程管理和通信。以下是对这个主题的详细讲解: 1. **线程与并发**: - 线程是程序执行的最小...

    C#消息队列发送及接收

    接收消息时,我们首先设置队列的接收模式为`PeekLock`,这使得在处理消息时能锁定消息,防止其他接收者获取。`Receive`方法会返回一个`Message`对象,我们可以通过它访问消息内容。处理完消息后,调用`...

    android,Mqtt消息队列,接收发送消息

    以下是对`android,Mqtt消息队列,接收发送消息`这一主题的详细解释: 1. **MQTT协议原理**:MQTT是基于发布/订阅模型的,其中客户端可以作为发布者(发送消息)或订阅者(接收消息)。消息通过主题进行路由,每个...

    VS2008 2010 CLR 自定义消息发送与接收程序

    程序有两个窗体,一个消息接收,一个消息发送,消息接收窗体内有一个按钮点击发送消息给本窗体,消息发送窗体内有一按键点击发送消息给消息接收窗体。程序很简单,不想下载可以自己上网找。只因为我也花了很多时间才...

    kafka 发送和接收消息

    消息中间件kafka 进行消息的分发和接收示例 应用中包含分通道发送和多线程接收

    头歌UDP Ping程序实现-客户端向服务器发送消息并接收消息.txt

    头歌UDP Ping程序实现-客户端向服务器发送消息并接收消息.txt头歌UDP Ping程序实现-客户端向服务器发送消息并接收消息.txt头歌UDP Ping程序实现-客户端向服务器发送消息并接收消息.txt头歌UDP Ping程序实现-客户端向...

    rabbitmq发送&接收消息

    【标题】:“rabbitmq发送&接收消息” 在IT行业中,消息队列(Message Queue)是一种常用的技术,用于处理异步任务、解耦系统组件以及缓解高并发时的系统压力。RabbitMQ是一款开源的消息代理软件,它基于AMQP...

    Spring+ActiveMQ消息队列+前台接收消息

    通过以上步骤,你可以成功地将Spring与ActiveMQ整合,实现后台消息的生产和消费,并在前台接收到这些消息。这种设计模式常用于大型分布式系统,如订单处理、日志收集、任务调度等场景,以提高系统的可靠性和响应速度...

    微信公众平台开发【接收消息】接收普通消息源代码

    小易Smalle博文微信公众平台开发【接收消息】接收普通消息http://blog.csdn.net/oldinaction/article/details/48000583所用示例源代码

    Android仿QQ消息通知栏新消息实时更新效果

    在Android应用开发中,实现类似QQ的消息通知栏新消息实时更新效果是一项常见的需求。这个功能不仅能够让用户在不打开应用的情况下获取到新消息,还能提供便捷的交互方式,如一键清除所有新消息。下面我们将详细探讨...

    PB与其它应用发送和接收消息

    PB与其它应用发送和接收消息以及如何在自定义事件中接收

    一个VB6.0适用的异步消息发送接收处理模块.rar

    一个应用程序级的VB6.0消息处理模块,By 飞雪紫翼。此模块可以实现在整个应用程序中的异步消息传送,开发这个模块的本意是... VB消息接收窗口主要接收[MsgTypeNetWork]类型的消息,并在收到此类消息时显示一个MsgBox。

    C#微信企业号接收和发送消息

    在本文中,我们将深入探讨如何使用C#编程语言与微信企业号进行交互,实现消息的接收和发送。微信企业号是一种为企业用户提供内部通讯和管理工具的服务,它允许开发者通过API接口进行定制化开发,实现自动化的工作...

    socket通信以及发送消息接收消息

    包含socket简历通信连接, socket发送消息,接收消息。

    发送与接收消息(sendmessage)

    本文将详细解析标题“发送与接收消息(sendmessage)”所涉及的知识点,以及如何通过`FindWindow`找到窗口句柄,并结合`SendMessage`实现消息的发送和接收。 `SendMessage`函数的基本语法如下: ```cpp LRESULT ...

    C#微信企业号接收和发送消息.rar

    考虑到微信消息的实时性,建议使用异步编程模型来处理消息,以提高系统的响应速度。C#从.NET 4.5开始引入了async/await关键字,使得异步编程变得更加简洁和高效。 8. 错误处理和调试 在开发过程中,确保对可能出现...

    MFC发送消息与接收消息的例子

    在Windows编程中,MFC(Microsoft Foundation Classes)库提供了一种高效的方式来处理Windows API,包括发送和接收消息。本文将详细讲解如何利用MFC中的`PostMessage`函数来实现一个发送和接收消息的实例。 首先,...

    STM32串口空闲中断DMA接收不定长数据消息队列

    在本文中,我们将深入探讨如何在STM32微控制器中实现串口空闲中断与DMA(直接内存访问)相结合,以接收不定长的数据,并利用FreeRTOS操作系统中的消息队列进行处理。STM32系列是基于ARM Cortex-M内核的微控制器,...

    微信实现消息发送与接收

    微信实现消息发送与接收的demo

    接收消息和发送消息的聊天界面

    "接收消息和发送消息的聊天界面"这个标题指的是一个基础的、交互式的界面设计,允许用户进行实时交流。这个设计可能包括输入框、发送按钮、以及一个展示聊天历史的时间线布局。下面我们将深入探讨实现这样一个聊天...

Global site tag (gtag.js) - Google Analytics