Code Monkey home page Code Monkey logo

im-server's Introduction

单体IM在线聊天

1、使用说明

  • 首先进行Websocket链接:同时需要做断开重连机制
  • 保持每60s一次心跳:每60s发送一次心跳消息,用以维持长连接

参考逻辑流程图

image-20221011194558841

2、消息格式说明

{
    "msgType":"BIND", // 消息类型:HEART_BEAT 心跳;BIND 绑定用户;TEXT 发送文本消息
    "from":{ // 消息发送者对象
        "uid":"1", // 消息发送者id
        "name":"用户A", // 消息发送者名称
        "avatar":"http://www.baidu.com/1.png" // 消息发送者头像
    },
    "mid":"7ce4491e-73a7-47bd-9ada-b2a88d5553e4", // 客户端生成的消息id,uuid生成即可
    "to": "2", // 消息接收用户id
    "content": "哈喽,你好,收到消息了吗?" // 消息内容
}

3、测试

浏览器打开两个标签页:http://ws.douqq.com/

1、用户A上线

绑定消息
{
    "msgType":"BIND",
    "from":{
        "uid":"1",
        "name":"用户A",
        "avatar":"http://www.baidu.com/1.png"
    },
    "mid":"7ce4491e-73a7-47bd-9ada-b2a88d5553e4"
}
心跳消息
{
    "msgType":"HEART_BEAT",
    "from":{
        "uid":"1",
        "name":"用户A",
        "avatar":"http://www.baidu.com/A.png"
    },
    "mid":"1f0e67f8-727d-48e2-9319-b4ad2c5ec686"
}

image-20221011193806786

2、用户B上线

绑定消息
{
    "msgType":"BIND",
    "from":{
        "uid":"2",
        "name":"用户B",
        "avatar":"http://www.baidu.com/B.png"
    },
    "mid":"7ea6acf7-2a4a-4576-bab9-f4fb69d13425"
}
心跳消息
{
    "msgType":"HEART_BEAT",
    "from":{
        "uid":"1",
        "name":"用户B",
        "avatar":"http://www.baidu.com/B.png"
    },
    "mid":"7c3f02f6-da27-4619-906e-9afa8b6e3e55"
}

image-20221011193819784

3、用户A给用户B发文本消息

{
    "msgType":"TEXT",
    "from":{
        "uid":"1",
        "name":"用户A",
        "avatar":"http://www.baidu.com/A.png"
    },
    "mid":"91ffcc5f-aea9-40cc-bc96-2b4bf31da47a",
    "to": "2",
    "content": "哈喽,你好,收到消息了吗?"
}

发送成功后,可看到用户A无消息响应,用户B会有消息响应

用户A

image-20221011193910593

用户B

image-20221011193903303

im-server's People

Contributors

wx1013 avatar

Watchers

 avatar

Forkers

mryinying

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.