即时通讯

<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 } ```