美文网首页
IM聊天系统的前端架构

IM聊天系统的前端架构

作者: 易则知 | 来源:发表于2018-07-18 15:47 被阅读922次

最近几个月团队主要开发了基于websocket的网页版即时聊天IM系统,主要满足客服与用户之前的沟通及问题反馈,包含消息分发,通讯录,日程,任务等功能模块,保证PC在线用户在听课,购买课程,问题反馈等方面的咨询和沟通及时高效的反馈到客服及专区管理员。

IM.png IM.png

IM即时消息分发,同时包含通讯录,可以进行文字、语音、图片、附件、小视频等聊天,功能基本参照网页版微信、QQ、钉钉这类的应用,面向用户C端更多一点。前端采用了web浏览器嵌入模式,后端采用了IM服务器和接口服务器架构,IM服务器专门负责消息的分发和推送,接口服务器负责所有业务的处理。发开要求:满足基本业务需求,要有丰富的IM交互,开放的结构,能让其自由接入到现有的Web系统。


IM主要基于websocket通讯协议开发的,首先要弄明白WS协议的原理和机制。

WebSocket协议是基于TCP协议并遵从HTTP协议的握手规范的一种通讯协议,其通过发送连接请求,握手,验证握手信息这三个步骤与服务器建立WebSocket连接。

发送连接请求
客户端通过一个格式为:ws://host:port/的请求地址发起WebSocket连接请求,并由JavaScript实现WebSocket API与服务器建立WebSocket连接,其中host为服务器主机IP地址或域名,port为端口。为了让本客服系统能够在不同浏览器建立WebSocket连接,在发送连接请求前,需要开启SockJS的支持,创建一个全双工的信道。

建立websocket连接
建立连接后,可在客户端使用JavaScript实现相关的WebSocket API。相关实现接口如下表:

实现方式 说明

New WebSocket(“ws://host:port/”);   发起与服务器建立WebSocket连接的对象
websocket.onopen()=function(){} 接收连接成功建立的响应函数
websocket.onerror()=function(){}    接收异常信息的响应函数
websocket.onmessage()=functionm(event){}    接收服务器返回的消息函数
websocket.onclose()=function(){}    接收连接关闭的响应函数
sendMessage(event.data)=function(data){}    发送消息函数
websocket.close()=function(){}  连接关闭函数

本地缓存

IM的聊天消息采用本地缓存,能有效的的提高性能

项目功能模块主要分为

  • 主体业务类
  • websocket消息推送
  • websocket消息接受
  • 工具函数类
  • dom模板渲染类
  • 本地存储类
  • 页面交互效果类
  • 操作日志类
  • 消息模板类

相关文章

  • IM聊天系统的前端架构

    最近几个月团队主要开发了基于websocket的网页版即时聊天IM系统,主要满足客服与用户之前的沟通及问题反馈,包...

  • 消息系统架构学习分享

    文章链接 现代IM系统中的消息系统架构 - 架构篇 现代IM系统中的消息系统架构 - 模型篇 现代IM系统中的消息...

  • IM聊天系统

    编解码 protobuf 视频 webrtc 服务器netty 传送门:https://github.com/zh...

  • IM系统架构设计之浅见

    IM系统架构设计之浅见 背景:除去大名鼎鼎的QQ这款即时聊天工具,还有许多细分行业的IM,比如淘宝阿里旺旺、网易泡...

  • 消息系统实时获取头像和昵称

    一般在IM等实时聊天系统中,IM系统和用户系统不是在同一个系统中,在IM系统中如何实时获取双方好友的头像和昵称成为...

  • IM系统架构与特性(分享)

    一讲到IM,我们就会想到微信、QQ这样的即时聊天系统,那么一个聊天系统都有哪些构成要素,一个完整的IM系统又是什么...

  • IM - 系统架构设计

    1. 概述 IM系统架构设计,如下图,主要分为两部分: 云盘系统Cpan(蓝色部分)。为了兼容已有云盘系统,提供W...

  • 现代IM系统中消息推送和存储架构的实现

    转自现代IM系统中消息推送和存储架构的实现 前言 IM全称是『Instant Messaging』,中文名是即时通...

  • 融云聊天之iOS笔记摘录

    1. 概念 融云SDK的系统架构 相关名词 2. 集成融云 登录融云 断开融云 会话列表页 聊天内容页 3. IM...

  • 现代IM系统中的消息系统架构 - 架构篇

    前言 IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中...

网友评论

      本文标题:IM聊天系统的前端架构

      本文链接:https://www.haomeiwen.com/subject/bskoeftx.html