搜索

首页  >  问答  >  正文

java - 即时通信系统和push推送系统都是怎么实现的啊?

一条消息 如何通过服务器中转达到 指定的另一端的

方便的话 贴一段典型的代码

另外session存储的时候 都存储什么信息啊

PHP中文网PHP中文网2726 天前899

全部回复(6)我来回复

  • 黄舟

    黄舟2017-06-12 09:29:28

    我的理解:
    客户端每间隔一段时间(比如一秒)向服务器进行一次请求(发送request)。
    如果服务端存在消息则在响应(response)中标记信息,通知客户端服务器端存在新消息。
    客户端向服务端发送请求拉去消息,服务端响应。

    request:有新消息吗?收到请回答。
    response:没有。
    request:有新消息吗?收到请回答。
    response:没有。
    request:有新消息吗?收到请回答。
    response:有,消息id是123456。
    request:请发送消息id是123456的消息内容。
    response:消息id:123456,消息正文:惊!这个女人竟然在13亿人面前做这种事……。

    回复
    0
  • 迷茫

    迷茫2017-06-12 09:29:28

    消息传达是通过客户端刷新向服务端获得消息的而不是服务端直接向客户端发送

    以前确实有一些是直接在本地开端口由服务器直接请求客户端的,但现在用于消息推送已经不多见了(通常用于局域网内传输文件或信息)

    session存储在服务器,本地通过 Cookies 存储 SESSION 的 name 和 id,服务器通过这两个而获取服务器端存储的内容

    回复
    0
  • 滿天的星座

    滿天的星座2017-06-12 09:29:28

    目前常见的是两种方案。
    1、客户端主动轮询(也就是每隔N时间向服务端询问有没有消息。
    2、服务端主动推送。后端服务之间用socket,与前端通讯的话可以用websocket。

    回复
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:29:28

    http2.0 可以很好的处理,可以尝试一下啊~

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:29:28

    都说是即时性的了,肯定要建立长连接这种了。比如socket。

    回复
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-12 09:29:28

    如果只是属于产品的众多功能之一,即时通信推荐题主对接IM,既可以节约一大笔开发支出,现有的IM提供商附带的功能又比较全面,比自己开发要划算的多,题主可以看一下环信 http://www.easemob.com/

    回复
    0
  • 取消回复