【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(一)

简介: 【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(一)

技术原理

开通第三方回调服务后,网易云信 IM 服务器会在客户端发送消息时,通过向您的应用服务器发送请求,将消息内容和用户信息发往应用服务器。您的应用服务器判断消息是否可以发送,并返回结果,网易云信 IM 服务器再选择是否投递消息。

第三方回调服务仅针对通过 SDK 发送的消息。通过服务端 API 发送的消息,不会触发第三方回调。


如果已开通第三方回调并配置消息相关回调,用户被拉黑后,给对方发消息,也会先进行第三方回调。


开通和配置第三方回调

使用第三方回调前,您需要在 网易云信控制台 上开通和配置 第三方回调。步骤详情请参考 开通和配置第三方回调。

第三方回调概述

请求相关项 说明
请求协议 HTTP/HTTPS,为保证数据安全,建议您使用 HTTPS
请求方式 POST,后面接您在 网易云信控制台 配置的第三方回调地址(通常为您的应用服务器地址),示例:POST https://******.com
消息格式 application/json; charset=utf-8
回调地址 对于部分回调类型(如单聊消息和群消息)来说,您可在发送消息时设置环境变量(env),服务器将根据不同的环境回调到不同的回调地址,环境和回调地址的映射关系需要在 网易云信控制台 配置,具体请参考上述步骤 3

校验方式

网易云信 IM 服务器请求您的应用服务器时,您的应用服务器从请求头 (request header)中获取 CheckSum 进行安全校验CheckSum = sha1(AppSecret + MD5 + CurTime),其中 AppSecret、MD5 和 CurTime 均为 String 类型在验证数据是否在传输过程中被篡改时,需要计算验证 MD5 值是否被修改,以及计算验证 CheckSumAppSecret 值为您的 AppSecret(与 AppKey 对应),MD5 值为根据请求体(request body)计算出来的值


请求次数 网易云信 IM 服务器只会请求 1 次
请求超时时间 超时时间为 2 秒如果请求失败或者超时,网易云信 IM 服务器会使用网易云信控制台上配置的默认回调结果继续处理业务逻辑您可前往 产品功能 > IM 即时通讯 > 基础功能 > 第三方回调 > 子功能配置 修改调用失败时的默认策略
消息放行结果 如果不放行,SDK 返回 403。如果放行,SDK 返回 7101

请求格式

请求头说明

Header 参数 类型 说明
AppKey String 您的应用的 App Key,具体获取方式请参考 获取 App Key
CurTime Long 当前 UTC 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数(Long)
MD5 String 根据请求中的 request body 计算出来的 MD5 值
CheckSum String 校验值
Content-Type String 请求消息体类型,一般为:application/json

MD5 值计算示例:

String requestBody = "{}";
String MD5 = CheckSumBuilder.getMD5(requestBody); //参考 接口概述 -> API checksum 校验 部分

CheckSum 值计算示例:

String AppSecret = "90ud57s6****";
String MD5 = "9894907e4ad9de467809127750******";
String CurTime = "1440570500855"; 当前 UTC 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数(String)
String CheckSum = CheckSumBuilder.getCheckSum(AppSecret, MD5, CurTime); //参考 接口概述 -> API checksum 校验 部分

请求的 HTTP Body 说明

消息体统一为 JSON 格式,示例:

JSON
{
    "body": "Hello",
    "eventType": 1,
    "fromAccount": "000266",
    "fromClientType": "WEB",
    "fromDeviceId": "617715aa8579db03f0cf054c199c****",
    "fromNick": "yj000266",
    "msgTimestamp": "1541560157286",
    "msgType": "TEXT",
    "msgidClient": "",
    "to": "005877",
    "fromClientIp":"115.211.**.**",
    "fromClientPort":"568**"
}

//Json 中的属性请参考具体的回调类型

响应格式说明

第三方回调响应的 Content-Type Header 需要设置为 application/json; charset=utf-8

响应消息体为 JSON 格式,示例:

JSON
{
    "errCode":0,
    "responseCode": 20000,
    "modifyResponse": {},
    "callbackExt": "aa"
}


image.png

【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(二):https://developer.aliyun.com/article/1566293

目录
相关文章
|
3月前
|
安全 前端开发 关系型数据库
IM即时通讯系统开发技术规则
IM即时通讯系统开发涵盖客户端与服务器端,涉及前端、后端、网络通信及多媒体处理等技术领域,支持文字、语音、图片、视频等多种实时交流方式。开发流程包括需求分析、技术选型、系统设计、开发实现、测试优化及部署维护等阶段,需关注网络通信、多媒体处理、安全性及可扩展性等关键技术点,广泛应用于社交、客服、团队协作及游戏等领域。
|
2月前
|
存储 网络协议 前端开发
基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.7版已发布
Android端主要更新内容: 1)[优化] 优化了首页“消息”列表中单聊类型未正确同步时的收发消息和点击后的处理逻辑; 2)[优化] 优化了首页“消息”列表中同一好友和陌生人会话不能自动合并的问题;
64 2
|
1月前
|
Rust 前端开发 JavaScript
Wasm在即时通讯IM场景下的Web端应用性能提升初探
简单的来说,Wasm就是使用C/C++/Rust等语言编写的代码,经过编译后得到汇编指令,再通过JavaScript相关API将文件加载到Web容器中(即运行在Web容器中的汇编代码)。Wasm是一种可移植、体积小、加载快速的二进制格式,可以将各种编程语言的代码编译成Wasm模块,这些模块可以在现代浏览器中直接运行。尤其在涉及到GPU或CPU计算时优势相对比较明显。
34 0
|
2月前
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.1版已发布
RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题
64 5
|
3月前
|
移动开发 前端开发 JavaScript
开源即时通讯IM框架MobileIMSDK的H5端技术概览
开源即时通讯IM框架MobileIMSDK的H5端技术概览
69 2
开源即时通讯IM框架MobileIMSDK的H5端技术概览
|
4月前
|
编解码 NoSQL Redis
(十一)Netty实战篇:基于Netty框架打造一款高性能的IM即时通讯程序
关于Netty网络框架的内容,前面已经讲了两个章节,但总归来说难以真正掌握,毕竟只是对其中一个个组件进行讲解,很难让诸位将其串起来形成一条线,所以本章中则会结合实战案例,对Netty进行更深层次的学习与掌握,实战案例也并不难,一个非常朴素的IM聊天程序。
106 3
|
4月前
|
前端开发 网络协议
Netty实战巅峰:从零构建高性能IM即时通讯系统,解锁并发通信新境界
【8月更文挑战第3天】Netty是一款高性能、异步事件驱动的网络框架,适用于开发高并发网络应用,如即时通讯(IM)系统。本文将指导你利用Netty从零构建高性能IM程序,介绍Netty基础及服务器/客户端设计。服务器端使用`ServerBootstrap`启动,客户端通过`Bootstrap`连接服务器。示例展示了简单的服务器启动过程。通过深入学习,可进一步实现用户认证等功能,打造出更完善的IM系统。
188 1
|
5月前
|
开发工具 开发者
【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(二)
【使用必读】服务端集成网易云信IM 即时通讯-回调说明篇(二)
93 0
|
2月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
25天前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
48 0

热门文章

最新文章

下一篇
DataWorks