即时通讯
<font color=“red”>`说明:此文档为涉及实时通讯使用`</font>
<a href="https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/signalr?view=aspnetcore-5.0&tabs=visual-studio" target="_blank">`SignalR官方地址`</a>
```json
<script src="{模板站域名}Scripts/jquery-1.6.4.min.js"></script>
<script src="{模板站域名}Scripts/jquery.signalR-2.4.3.min.js"></script>
<script src="{模板站域名}ws/chatHub/hubs"></script>
创建集线器代理 var chat = $.connection.chatHub;
//创建连接
$.connection.hub.start().done(function () {
//建立连接组
chat.invoke("JoinGroup", groupName);
$('#sendmessage').click(function () {
//发送实时消息
chat.invoke("SendMessage", groupName, "消息内容");
});
});
//定义供服务端调用的方法,接收实时消息(举例,showChatMessage会变)
chat.client.showChatMessage = function (message) {
};
//移除连接组
chat.invoke("RemoveGroup", groupName);
```
## 前端实时发送消息格式-好友
`点击发送按钮时传到后端`
`使用示例chat.invoke("SendMessage","ChatFriend_{xy_friend_id}", data);//{xy_friend_id}为好友关系id`
```json
//接收实时消息方法,message为返回的json数据
chat.client.showChatFriend = function (message) {
};
```
```json
向服务端发送内容
{
"xy_uid": 1, //发送人uid
"xy_friend_uid": 1, //接收人uid
"content":"XXX", //消息内容
}
```
```json
服务端向客户端发送内容
{
"xy_rid":100,//消息id
"xy_uid":100,//用户编号,系统消息时用户编号为0
"xy_uname":"xxx",//用户账号
"xy_nickname":"xxx",//昵称
"xy_userface":"xxx",//头像
"xy_content":"", //内容
"created_time":"yyyy-MM-dd HH:mm:ss",//消息发送的时间
"xy_type":1 // 1正常消息 2 系统消息-删除好友
}
```
## 前端实时发送消息格式-群聊
`点击发送按钮时传到后端`
`使用示例chat.invoke("SendMessage","ChatGroup_{gid}", data);//{gid}为群聊id/游戏id`
```json
//接收实时消息方法,message为返回的json数据
chat.client.showChatGroup = function (message) {
};
```
```json
向服务端发送内容
{
"xy_gid": 1, //群聊id
"xy_uid": 1, //发送人uid
"content":"XXX", //消息内容
}
```
```json
服务端向客户端发送内容
{
"xy_rid":100,//消息id
"xy_uid":100,//用户编号
"xy_uname":"xxx",//用户账号
"xy_nickname":"xxx",//昵称
"xy_userface":"xxx",//头像
"xy_content":"", //内容
"created_time":"yyyy-MM-dd HH:mm:ss",//消息发送的时间
"xy_type":1 // 1正常消息
}
```
## 消息列表实时更新返回数据说明
`发消息场景:即时通讯`
`groupName:"ChatMsgList_{uid}"//{uid}为当前登录人uid`
```json
//接收实时消息方法,message为返回的json数据
chat.client.showChatMsgList = function (message) {
};
```
```json
{
"IsSuccess":true,
"Message":"成功",
"ClientData":[
{
"gid":1111,//群聊id
"uid":1111,//好友id
"name":"xxx",//群聊名称or好友昵称
"img":"xxx",//头像
"type":1,//消息类型 1 群消息 2 好友消息 3 申请加好友消息 0 系统消息
"lastMsg":"", //最后一条消息内容
"createdTime":"yyyy-MM-dd HH:mm:ss",//最近一条消息发送的时间
"msgCount":1, //未读消息条数
}],
"Total":0
}
```
## 好友列表实时更新返回数据说明
`发消息场景:即时通讯`
`groupName:"ChatFriendList_{uid}"//{uid}为当前登录人uid`
```json
//接收实时消息方法,message为返回的json数据
chat.client.showChatFriendList = function (message) {
};
```
```json
{
"IsSuccess":true,
"Message":"成功",
"ClientData":[
{
"xy_friend_id":1000,//好友关系id
"xy_uid":100,//好友用户编号
"xy_uname":"xxx",//用户账号
"xy_nickname":"xxx",//昵称
"xy_userface":"xxx",//头像
"xy_level":"8.5",//会员等级
"xy_svip_state":0,//星耀会员状态 0非星耀会员 1星耀会员
}],
"Total":0
}
```