获取所有未读消息
语法格式:
参数一:用户id
参数二:用户在cookie记录的id,登录用户唯一识别id
参数三:用户页面进入后分配的id,该id和状态服务器中记录的一致,固定传值US.PageId
返回值:数组,详细信息如下:
数组0 未读消息
数组00 好友未读消息,结构如下:
数组01 群未读消息 ,结构如下:
数组1 用户在服务器的状态
数组10 返回用户下线好友,结构如下:
数组11 返回用户上线好友,结构如下:
数组12 硬盘消息,结构如下:
newid //消息识别ID
userid //发送信息的ID
username //发送信息的名
userthumbnailimagehead //发送信息的头像
newtype //消息类型 delete是删除文件
newt //消息信息
newc //消息详细信息
et //数据实体
time //添加的时间
前面的消息结构不太合理,特制定新的消息结构:
一、前端消息结构,即发送者消息结构:
sendstruct{
sendid,//发送者用户id
recievedid,//接受者用户id,后端通过此id拼凑消息结构。
type,//消息类型,俱乐部使用时用us开头,后面带用途。例如 us.disk us.friend.
messageinfo,//消息结构
}
每个字段的注释
1,如果sendstruct.type="us.disk" 代表硬盘消息,主要用于群里面文件的删除,修改,添加
messageinfo结构:{
"type":"add"||"delete"||"update", 添加或者删除或者修改
"content":"文件id"
}
2、如果recieveedstruct.type="us.friend" 代表好友消息
好友未读消息,结构如下:
{
MessageID:"", 消息id
MessageRecieveUserID:"",消息接受者id
MessageSendTime:"",消息发送时间
MessageSendUserID:"",消息发送者id
MessageContent:"",消息内容
MessageDescript:"", 消息描述(暂未使用)
MessageRemark:""消息备注(暂未使用)
}
3、如果recieveedstruct.type="us.group" 代表群消息
群未读消息, 结构如下:
{
MessageID:"", 消息id
MessageRecieveUserID:"",消息接受者id
MessageSendTime:"",消息发送时间
MessageSendUserID:"",群id
MessageContent:"",消息内容
MessageDescript:"", 消息描述(暂未使用)
MessageRemark:""消息备注(暂未使用)
}
4、如果sendstruct.type="us.offline"
好友下线,结构如下:
5、如果sendstruct.type="us.online"
好友上线,结构如下:
6、如果sendstruct.type="象棋"。
7、如果sendstruct.type=...
二、后台消息结构,即接受者消息结构:
消息结构:recieveedstruct
{
id //新的guid
sendid //发送消息人的id.
time //发送时间
type //类型 俱乐部使用时用us开头,后面带用途。例如 us.disk us.friend
messageinfo{title:"",content:""} 此处为object
}
每个字段的注释
1,如果recieveedstruct.type="us.disk" 代表硬盘消息,主要用于群里面文件的删除,修改,添加
messageinfo结构:{"type":"add"||"delete"||"update","content":"文件id"}
2、如果recieveedstruct.type="us.friend" 代表好友消息
好友未读消息,结构如下:
{
MessageID:"", 消息id
MessageRecieveUserID:"",消息接受者id
MessageSendTime:"",消息发送时间
MessageSendUserID:"",消息发送者id
MessageContent:"",消息内容
MessageDescript:"", 消息描述(暂未使用)
MessageRemark:""消息备注(暂未使用)
}
3、如果recieveedstruct.type="us.group" 代表群消息
群未读消息, 结构如下:
{
MessageID:"", 消息id
MessageRecieveUserID:"",消息接受者id
MessageSendTime:"",消息发送时间
MessageSendUserID:"",群id
MessageContent:"",消息内容
MessageDescript:"", 消息描述(暂未使用)
MessageRemark:""消息备注(暂未使用)
}
4、如果recieveedstruct.type="us.offline"
好友下线,结构如下:
5、如果recieveedstruct.type="us.online"
好友上线,结构如下:
6、如果recieveedstruct.type="象棋"。
7、如果recieveedstruct.type=...
综述:如果可以做成上述模式,则可直接使用socket.io模块,socket模式发送请求
//this.io.emit("send", { sendid:"",recievedid:"",type:"",messageinfo:{} });
GetAllUnreadMessage(string userid);
示例:GetAllUnreadMessage(userid);后面2个参数固定。
注释:整个数据结构要重新规划。
前端javascript调用数据库存储过程示例(可在编辑区域修改参数):
U.A.Request(US.AUTH, (["GetAllUnreadMessage", "718a3818-e9e0-4b4e-b7d3-8539541b9598"]),AsynFun,[])
运行结果展示区域:
前端javascript调用示例:
U.A.Request(US.AUTH, (["GetAllUnreadMessage", UserId],AsynFun,[]))