需求大概是这样的:每个页面打开的时候,会给登录用户推送数据,比如实时消息、实时系统通知、以及用户可以打开右下角的js聊天窗口和好友聊天页面上,也就是客户端上,我准备用html5的websocket + flash socket来做服务器端,用java socket或者nodejs
1. java socket,用nio模式,数据库连接池等
2. nodejs  js经常写,但nodejs还没用过我用的最多的还是php,java有一定了解
偏向于用java做
写出java的服务端没什么问题,但是不知道性能会如何,是否能支持大流量并发访问
同时我也是个java新手,虽然10年前就写过java代码,但我一直是在搞B/S,S还是用的php较多nodejs方面,担心性能顶不住大流量,同时也因为对它还一无所知,不知道是否能满足我们需求求同学们意见socket服务器nodejsjava

解决方案 »

  1.   

    用dwr的Reverse Ajax功能试试。
      

  2.   

    JVM上最有名气的服务器推技术实现,可能是Scala的Comet。就是Scala稍微比Java难学一些。
      

  3.   

    web server这块还是基于php的,不打算换成java
      

  4.   

    PHP做这种推,也很容易,因为原理是一样的。
      

  5.   


    给我的时间,估计就1个星期,基本功能开发,当然,不包括后续调试优化debug等所以时间紧张
      

  6.   


    php不适合做socket server非要用php做的话,就成了长轮询、长连接类的了,性能不好
      

  7.   


    php不适合做socket server非要用php做的话,就成了长轮询、长连接类的了,性能不好你用socket server就不是Web Server的推技术了。建议你先看原理,而且不用轮询,基本属于长连接那种。PHP这方面确实一般,可以考虑Go语言什么的。
      

  8.   


    php不适合做socket server非要用php做的话,就成了长轮询、长连接类的了,性能不好你用socket server就不是Web Server的推技术了。建议你先看原理,而且不用轮询,基本属于长连接那种。PHP这方面确实一般,可以考虑Go语言什么的。socket是不是推技术,这个不重要我们已经决定不用轮询、长连接了
      

  9.   

    说道推送就想到两个,一个是html5的websocket,一个是flex red5
      

  10.   

    flex red5 没玩过
    前段flash  后端java?
      

  11.   


    1. 半小时在线1万人,其中登录用户2-3千
    只对登录用户推拉数据
    2. 肯定不会是1秒一条,主要是好友间发送的消息,好友在网站上做的操作的消息,以及在聊天窗口的聊天内容了
    在每次刷新页面,创建socket连接后,需要读取一次初始历史数据,然后,如果有人加我为好友,系统会给我发消息,这需要在我的页面顶部实时的显示新消息数,类似这样的消息
    关于聊天,在每个页面上,右下角都可以打开聊天窗口,和站内好友聊天。之前做的ajax10秒请求一次的demo给boss看没通过,boss接受不了10秒的时间,时间间隔设置短点的话,总归没socket好,而且ajax做的给服务器压力太大
      

  12.   

    用WebRTC,点对点,服务器端几乎无压力。
      

  13.   

    登录用户2~3千的话,倒也还不算太恐怖的高。如果确实对时效性要求很高的话,可以考虑用 HTTP 长连接,来实现即时消息的推送服务。如果最终用户的浏览器能确保支持HTML5的话,用WebSocket也挺不错的。
      

  14.   


    浏览器端,先判断是否支持websocket,如果不支持,再判断是否装有flash,如果还不支持放弃现在的问题是在服务器端,没决定是用java socket做还是用node.js做
      

  15.   

    不懂node.js ,据说可以百万并发。
    是另外搭建新的聊天服务器,还是在现有系统上进行扩展?重要考虑和现有系统的融合吧。
      

  16.   

    node.js 确实比较适合这种场景。不过我个人不推荐在项目中使用过多新技术,增大项目实施风险。不过用JavaSocket的话,显然你也必须找成熟框架以支持NIO。
      

  17.   


    聊天是新的,以前没有消息通知这块属于附带功能,因为既然已经和每个用户都建立socket了,为什么不用呢
      

  18.   

    兄弟,这适合网站文字聊天吗?浏览器支持如何文字聊天小Case了,视频都没问题,数据流不通过服务器,
    客户端只在与其他客户端建立链接,需要借用一下服务器打通NAT,之后完全点对点。
    服务器端是完全没压力的。目前Chrome Firefox 支持,
    W3C草案已经有了,以后支持者应该会越来越多。
    用IE的都去死吧
      

  19.   

    兄弟,这适合网站文字聊天吗?浏览器支持如何文字聊天小Case了,视频都没问题,数据流不通过服务器,
    客户端只在与其他客户端建立链接,需要借用一下服务器打通NAT,之后完全点对点。
    服务器端是完全没压力的。目前Chrome Firefox 支持,
    W3C草案已经有了,以后支持者应该会越来越多。
    用IE的都去死吧
    这个不行了,还得记录聊天的历史记录呢
      

  20.   


    node.js方面,我正在看网易的那个pomelo,看好不好用,合适不java socket的话,你有框架推荐吗?到目前为止,我还没用过任何一个java框架 
      

  21.   

    =_=
    Apache Mina 是比较不错的NIO框架。
      

  22.   

     楼上大神说的mina确实是很多java项目的首选聊天是新的,以前没有消息通知这块属于附带功能,因为既然已经和每个用户都建立socket了,为什么不用呢
      

  23.   

    一个星期做出来的确不易,只能看框架了。我没用过mina,我只是知道作为通信框架这个用得很广
      

  24.   

    这是最普通的轮询,ajax定时去取就行
    这样的周期设置短了,对服务器压力大,设置长了,实时性又不好
      

  25.   

    =_=
    Apache Mina 是比较不错的NIO框架。最后我们还是决定用node.js
    起码我们公司的几个人都可以用js来写代码,不像java只有我一个人能写下
    再就是网易的pomelo这个游戏框架,和我们的需求十分接近,我们准备学习研究后,没什么大问题的话,就在此基础上开发了谢谢大神,回答了我这么多疑惑这里是怎么给分的?怎么没发现地方?
      

  26.   

    兄弟,这适合网站文字聊天吗?浏览器支持如何文字聊天小Case了,视频都没问题,数据流不通过服务器,
    客户端只在与其他客户端建立链接,需要借用一下服务器打通NAT,之后完全点对点。
    服务器端是完全没压力的。目前Chrome Firefox 支持,
    W3C草案已经有了,以后支持者应该会越来越多。
    用IE的都去死吧
    这个不行了,还得记录聊天的历史记录呢记录简单啊,在客户端的js里面加句话,
    用户每发一条消息在消息发往其聊天对象的同时,发一份到你的历史记录服务器。
    服务器端只管记录就好咯。不需要考虑任何转发,轮询,推送技术。但是,你为啥要偷看伦家的隐私啊?
      

  27.   

    兄弟,这适合网站文字聊天吗?浏览器支持如何文字聊天小Case了,视频都没问题,数据流不通过服务器,
    客户端只在与其他客户端建立链接,需要借用一下服务器打通NAT,之后完全点对点。
    服务器端是完全没压力的。目前Chrome Firefox 支持,
    W3C草案已经有了,以后支持者应该会越来越多。
    用IE的都去死吧
    这个不行了,还得记录聊天的历史记录呢记录简单啊,在客户端的js里面加句话,
    用户每发一条消息在消息发往其聊天对象的同时,发一份到你的历史记录服务器。
    服务器端只管记录就好咯。不需要考虑任何转发,轮询,推送技术。但是,你为啥要偷看伦家的隐私啊?就是网站的站内消息和聊天的结合,怎么能不记录呢
    ie不支持,死翘翘