
package org.tio.sitexxx.im.common;

import lombok.Data;
import org.tio.sitexxx.im.common.bs.HandshakeReq;
import org.lionsoul.ip2region.DataBlock;
import org.tio.monitor.RateLimiterWrap;
import org.tio.websocket.common.WsSessionContext;

/**
 *
 * @author tanyaowu
 *
 */
@Data
public class ImSessionContext {
	/**
	 * 是Wx版否
	 */
	private boolean				isWx				= true;
	/**
	 * 消息请求频率控制器
	 */
	private RateLimiterWrap		requestRateLimiter	= null;
	/**
	 * 握手时的用户id，注意：就算后来被踢了，此值仍然不会被清空，可用于数据统计，但不能用此值来获取当前用户
	 */
	private Integer				uid;
	/**
	 * 当前Channel所在的groupid
	 */
	private String				groupid;

	/**
	 * 是否已经握过手
	 */
	private boolean				isHandshaked		= false;
	private boolean				isWebsocket			= false;
	private boolean				isIos				= false;
	private boolean				isAndroid			= false;
	private boolean				isSuper				= false;
	/**
	 * 上一次发群聊消息的时间
	 */
	private long				lastGroupChatTime	= 0;
	private HandshakeReq handshakeReq;
	/**
	 * 如果是ws，则有此对象
	 */
	private WsSessionContext	wsSessionContext;
	/**
	 * ip地址信息
	 */
	private DataBlock			dataBlock;
	/**
	 * 音视频通话的id
	 */
	private Long				callId				= null;
}
