`
mmBlue
  • 浏览: 167705 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

IM解决方案

 
阅读更多

  曾今做过web im ,总结下目前我所了解到的web im解决方案。做 web im ,有2个难题,一个是http长链接,一个是服务端,互相搭配起来也很多,比如:

 

1.pushlet + map pushlet基于事件模式的,是个js库,这个我架了个demo,感觉深入比较复杂,当时略过。服务端就是自己搞个线程安全的map处理业务逻辑,主要是发消息,所有在线人员

 

2. dwr ,服务端和上面的类似。只是长链接是dwr做的。

 

3. flash 的 xmlsocket + mina ,基于 flash的,我当时还做了个demo,后来因为考虑浏览器支持放弃了。

 

以上1和2方案,我认识的有几个目前还在这么做,特别是企业系统的,也是09年左右用的最多的方案。

 

3. dwr + openfire 这个是我去年做webim提出的一个解决方案,将dwr的 scriptsessionid和 openfire的监听器绑定,当onMessage的时候就推消息。当时最多差不多有个1000人聊天,dwr可以HOLD住,后来也不知道有多高了。

 

4.自己用多线程写长链接 + openfire,这是去年项目里面替换dwr的方案,由一位同事写的,还是比较猛的。

当时pv 4W,还是很稳定的。其实发现openfire还是很能抗的,他一般不会出啥问题。

 

5. servlet3.0 + jms  这个服务端变成了 jms,利用发布,订阅帮我们处理转发,servlet3.0来长链接。

 

6. servlet3.0(springmvc) 去年这个时候springmvc3.2打算封装servlet3.0,有个DeferredResult

根据官方的demo,这个DeferredResult,是这个意思,比如A发起一次长链接,就创建一个,放到一个map,里面。这个时候B发消息给A,B从map里面get到A对应的DeferredResult,然后给他setResult,那么A马上收到消息。然后A再回调下,从map移除

deferredResult.onCompletion(new Runnable() {

@Override

public void run() {

System.err.println("onCompletion");

rs.remove(deferredResult);

}

 

});

如果再让我做webim,我会考虑这个方案,再和openfire结合起来,现在都过去几年了servlet3.0的容器也越来越成熟了。

 

6. websotck 系 /nodejs/ stock.io 去年调研im的时候看到过nodejs这个新东西,发现很猛,但是基于webstock直接放弃了,后来才知道Socket.IO这个东西会跨浏览器,如果没有html5支持就用flash的。

 

 

7. Python 系  Tornado ,这个facebook出品,号称直接秒杀1W并发高性能框架,在异步IO相当之给力,如果我再拾Python,这个会优先考虑。

 

总体看来还是web的长链接和服务端,而且随着技术的更新,方案是越来越多,绝不限于上面的,不过有

一点需提醒,如果想支持比较多的用户,需要发挥的好才行。 其他一些具体的技术细节,等以后有时间了补上。

 

 

分享到:
评论

相关推荐

    跨平台、全开源的野火IM解决方案的iOS部分,是一个完整的IM.zip

    在iOS部分,这个解决方案包含了一整套用于实现IM功能的代码库和资源,使得开发者能够快速地在iOS平台上搭建自己的聊天应用。本文将深入探讨野火IM在iOS端的关键知识点。 一、野火IM架构 野火IM的设计理念是模块化和...

    基于SpringBoot和Netty的layim集成聊天系统IM解决方案设计源码

    本项目是一款基于SpringBoot和Netty框架,集成LayIM的即时通讯(IM)系统解决方案源码。包含281个文件,涵盖127个Java源文件、32个JavaScript脚本、9个GIF图片、9个CSS样式、7个HTML模板、6个JPG图片、5个XML配置...

    服务器:企业开源IM解决方案

    Xiaper·企业开源IM解决方案 是全栈企业开源IM解决方案,包括服务器库和客户端库。 该服务器基于Spring Boot开发,支持集群和Spring Cloud。客户端库包括:Android,iOS,Web / HTML5,Windows,Mac和微信小程序。 ...

    喧喧(开源免费的企业即时通讯IM软件)v2.4.0源码包

    喧喧是一款开源免费的企业即时通讯IM软件、聊天软件,提供企业内部通讯交流、企业通讯录、协同办公通讯交流、企业IM解决方案。 喧喧是由然之协同推出的即时通信解决方案。 喧喧功能特色 开聊:和服务器上的任何...

    创建基于 Ajax 的 IM 客户端

    在本教程中,我们将探讨如何创建一个基于Ajax的即时通讯(IM)客户端,这使得用户能够在Web环境中进行即时消息交流,而无需传统IM客户端...通过深入学习和实践,你将能够创建出更加复杂和健壮的基于Ajax的IM解决方案。

    MOB IM 完全免费

    2. **Android平台开发**:由于涉及到"MobIM-for-Android-master",说明这个IM解决方案是专为Android设备设计的,开发者可以使用Java或Kotlin语言,遵循Android开发规范来集成MOB IM的功能。 3. **免费Demo**:提供...

    SAP BusinessObjects信息管理解决方案.ppt

    3. **高兼容性**:IM解决方案与SAP Business Suite、SAP BusinessObjects BI、SAP NetWeaver BI和SAP NetWeaver MDM等产品无缝集成,确保了数据的一致性和完整性,降低了集成复杂性。 4. **可信数据基础**:通过...

    腾讯IM生成sig

    腾讯IM作为一款广泛使用的IM解决方案,提供了丰富的功能和优秀的性能。本文将深入探讨如何在Java服务端集成腾讯IM并生成usersig,以便于应用程序能够与腾讯IM服务器进行安全的身份验证。 首先,我们需要理解`...

    野火IM微信小程序版.zip

    野火IM解决方案野火IM是专业级即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。主要特性有试点部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好...

    开源免费的IM,功能和UI符合国内习惯,比XMPP具有更适合移动端的协议,可以作为IM组件代替环信、融云、网易云信等云通讯和XMPP.zip

    相比商业化的云通讯平台如环信、融云和网易云信,开源的IM解决方案提供了一种更自由、成本更低的选择。下面将详细探讨这一领域的相关知识点。 首先,XMPP(Extensible Messaging and Presence Protocol)是一种基于...

    基于openfire 的android IM 即时通讯smack的android IM

    总之,基于Openfire和Smack的Android IM解决方案提供了完整的即时通讯功能,开发者只需关注业务逻辑,而无需从底层协议开始构建。通过深入学习和实践,开发者可以打造出高效、定制化的IM应用,满足各种需求。

    android-chat-开源免费的IM,功能和UI符合国内习惯,比XMPP具有更适合移动端的协议,可以作为IM组件代替环信、融云、网易云信等云通讯和XMPP http://docs.wildfirechat.cn.zip

    野火IM解决方案野火IM是一套跨平台、全开源的即时通讯解决方案,主要包含以下内容。仓库说明备注android-chatAndroid平台的SDK和Demoios-chatiOS平台的SDK和Demopc-chat基于Electron开发的PC平台Demoproto野火IM的...

    java即时通讯im源码

    即时通讯(IM)涉及多个组件,如客户端、服务器和可能的数据库。这里是一个简化的Java即时通讯项目...在实际开发中,您可能需要使用现有的IM框架或库,如Smack(基于XMPP协议)或其他专门用于Java应用程序的IM解决方案。

    2019年工业互联网APP优秀解决方案公示名单.pdf

    1. **智能制造APP应用**:如海尔数字科技的COSMOPlat-IM解决方案,通过工业互联网APP实现了生产过程的智能化,包括生产计划、执行、监控和优化,以提高生产效率和产品质量。 2. **智能运维APP应用**:如轨道交通...

    Go-goim是一个golang写的IM服务器

    Go-goim充分利用了Golang的优势,为开发者提供了一套完整的IM解决方案。 核心功能方面,Go-goim实现了以下几点: 1. **一对一聊天**:每个用户可以与其他用户进行实时的文字、语音甚至文件传输。这需要服务器能够...

    云骞开源IM

    【云骞开源IM】是一个基于ASP.NET技术的即时通讯(IM)系统,它...总的来说,云骞开源IM提供了一个易于部署和维护的IM解决方案,对.NET开发者尤其友好,他们可以利用这些开源代码学习、实践并进一步改进即时通讯服务。

    im_im_phpim插件PHP编写的在线IM聊天插件,可以配合PHP程序进行配置_源码.zip

    综上所述,im_im_phpim插件是一个基于PHP的在线IM解决方案,适用于需要实现实时聊天功能的Web应用程序。开发者可以通过源码了解其实现细节,进行定制和扩展,以满足特定项目的需求。同时,集成和配置过程中需要考虑...

    IM即时通解决方案(IM消息平台)

    ### IM即时通解决方案(IM消息平台)的知识点详解 #### 一、IM消息平台的意义与作用 **IM消息平台**的构建旨在为企业及其员工提供一个高效便捷的内部沟通渠道,以此提升企业的管理水平和工作效率,加速企业发展...

    im通讯例子

    IM(Instant Messaging)即时通讯是一种在线实时交流技术,允许用户通过网络进行文本、语音甚至视频的交互。在本文中,我们将深入...理解并掌握这些知识点,将有助于构建自己的IM解决方案,满足不同场景下的通讯需求。

Global site tag (gtag.js) - Google Analytics