有思俱乐部学习园地

获取所有未读消息


语法格式:


参数一:用户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,[]))

工作人员

 
作者:郑炳圳
信息录入:郑炳圳