net.sf.jqql.packets.in
Class SystemNotificationPacket
java.lang.Object
net.sf.jqql.packets.Packet
net.sf.jqql.packets.InPacket
net.sf.jqql.packets.BasicInPacket
net.sf.jqql.packets.in.SystemNotificationPacket
public class SystemNotificationPacket
- extends BasicInPacket
system notification packet, is there any difference between system info and system notification of ReceiveIMPacket?
system notification means message that you haven't been added friend, so have source and purpose, other haven't
received, system notification is sent to everybody by system.
system notification format is:
1. header, header means system notification type, now known have 4
2. for common system notification, its formate is:
many field divided by ox1F, for known type, parting is message type, source,
purpose, extra content. for unknown
type, front three is the same, after is unknown
of QQ_SYS_BEING_ADDED_EX, message text format is:
i. byte length of follow content
ii. unknown content, don't know how to decrypt
of QQ_SYS_ADD_FRIEND_REQUEST_EX, message text format is:
i. byte length of message text
ii. message text
iii. whether allow the other side to add me as friend, 0x01 means yes, 0x02 means not
of QQ_SYS_ADD_FRIEND_APPROVED_AND_ADD, message text format is:
i. unknown 1 byte, 0x00
3. tail
系统消æ¯åŒ…,系统消æ¯å’ŒReceiveIMPacket里é¢çš„系统通知有什么区别呢?
ç³»ç»Ÿæ¶ˆæ¯æ˜¯è¡¨ç¤ºä½ è¢«åˆ«äººåŠ ä¸ºå¥½å‹äº†ä¹‹ç±»çš„æ¶ˆæ¯ï¼Œæ‰€ä»¥æœ‰æºæœ‰ç›®çš„,其他人
æ”¶ä¸åˆ°çš„,系统通知是系统å‘给大家的消æ¯ã€‚好了,废è¯è¿™ä¹ˆå¤šï¼Œç³»ç»Ÿæ¶ˆæ¯çš„
æ ¼å¼æ˜¯:
1. 头部,头部说明了系统消æ¯çš„类型,目å‰å·²çŸ¥çš„æœ‰å››ç§
2. å¯¹äºŽä¸€èˆ¬çš„ç³»ç»Ÿé€šçŸ¥ï¼Œå…¶æ ¼å¼ä¸º:
以0x1Fç›¸éš”çš„å¤šä¸ªå—æ®µï¼Œå¯¹äºŽå·²çŸ¥çš„类型,分别是消æ¯ç±»åž‹ï¼Œæºï¼Œç›®çš„ï¼Œé™„åŠ å†…å®¹ï¼Œå¯¹äºŽæœªçŸ¥çš„
消æ¯ç±»åž‹ï¼Œå‰é¢ä¸‰ä¸ªæ˜¯ä¸€æ ·çš„,åŽé¢çš„就未知了
对于QQ_SYS_BEING_ADDED_EXï¼Œæ¶ˆæ¯æ£æ–‡çš„æ ¼å¼ä¸ºï¼š
i. åŽé¢å†…容的å—节长度
ii. 未知内容,ä¸çŸ¥ç”¨ä»€ä¹ˆæ‰èƒ½è§£å¯†
对于QQ_SYS_ADD_FRIEND_REQUEST_EXï¼Œå…¶æ¶ˆæ¯æ£æ–‡çš„æ ¼å¼ä¸º
i. æ¶ˆæ¯æ£æ–‡å—节长度
ii. æ¶ˆæ¯æ£æ–‡
iii. 是å¦å…è®¸å¯¹æ–¹åŠ è‡ªå·±ä¸ºå¥½å‹ï¼Œ0x01表示å…许,0x02表示ä¸å…许
对于QQ_SYS_ADD_FRIEND_APPROVED_AND_ADDï¼Œå…¶æ¶ˆæ¯æ£æ–‡çš„æ ¼å¼ä¸º
i. 未知的1å—节,0x00
3. 尾部
Note: only use 0x00A8 of 2005 to send authentication message, will receive QQ_SYS_ADD_FRIEND_REQUEST_EX message
Note: åªæœ‰ä½¿ç”¨2005çš„0x00A8å‘é€è®¤è¯æ¶ˆæ¯ï¼Œæ‰ä¼šæ”¶åˆ°QQ_SYS_ADD_FRIEND_REQUEST_EX消æ¯
- Author:
- luma
Fields inherited from class net.sf.jqql.packets.Packet |
bodyBuf, bodyDecrypted, command, crypter, ds, duplicated, header, log, sequence, source, user |
Methods inherited from class net.sf.jqql.packets.BasicInPacket |
decryptBody, encryptBody, getBodyBytes, getCryptographStart, getFamily, getHeadLength, getLength, getTailLength, parseHeader, parseTail, putBody, putHead, putTail, toString |
Methods inherited from class net.sf.jqql.packets.Packet |
dump, equals, getCommand, getHeader, getSequence, getSource, hash, hashCode, isDuplicated, setDuplicated, setHeader, setSequence |
DIVIDER
public static final String DIVIDER
type
public int type
from
public int from
to
public int to
message
public String message
allowAddReverse
public boolean allowAddReverse
SystemNotificationPacket
public SystemNotificationPacket(ByteBuffer buf,
int length,
QQUser user)
throws PacketParseException
- constructed function
æž„é€ å‡½æ•°
- Parameters:
buf
- 缓冲区 // bufferlength
- 包长度 // packet length
- Throws:
PacketParseException
- è§£æžå‡ºé”™ // parse error
getPacketName
public String getPacketName()
- Overrides:
getPacketName
in class BasicInPacket
- Returns:
- descriptive name of packet
包的æè¿°æ€§åç§°
parseBody
protected void parseBody(ByteBuffer buf)
throws PacketParseException
- Description copied from class:
Packet
- parse packet body, from begin position of buf
è§£æžåŒ…体,从buf的开头ä½ç½®è§£æžèµ·
- Specified by:
parseBody
in class Packet
- Parameters:
buf
- ByteBuffer
- Throws:
PacketParseException
- if parse error
如果解æžå‡ºé”™