sdg
Version:
pomelo ts
74 lines (73 loc) • 1.82 kB
TypeScript
import Base from '../../base';
import Session from './session/session';
import { FRONTEND_ID, IConnectorSocket, IMsgRspEncode, IObject, SID, UID } from '../..';
interface ISessions {
[sid: string]: Session;
}
interface IUidSessions {
[uid: string]: Session[];
}
export default class SessionService extends Base {
singleSession: boolean;
sessions: ISessions;
uidMap: IUidSessions;
constructor(app: any, opts: any);
/**
* 创建session
* @param sid socket id
* @param frontendId 当前服务器id
* @param socket
* @return {Session}
*/
create(sid: SID, frontendId: FRONTEND_ID, socket: IConnectorSocket): Session;
get(sid: SID): Session;
getByUid(uid: UID): Session[];
/**
* 建立uid与session的绑定
* @param sid
* @param uid
*/
bind(sid: SID, uid: UID): void;
/**
* 解绑
* @param sid
* @param uid
*/
unbind(sid: SID, uid: UID): void;
/**
* 移除session
* @param sid
*/
remove(sid: SID): void;
/**
* 设置信息导入session
* @param sid
* @param key
* @param val
*/
import(sid: SID, key: string, val: any): void;
importAll(sid: SID, settings: IObject): void;
/**
* 剔除session
* @param sid
* @param reason
*/
kickBySessionId(sid: SID, reason?: string): void;
kick(uid: UID, reason: string): void;
/**
* 获取客户端的ip
* @param sid
*/
getClientIpBySessionId(sid: SID): string;
/**
* 推送消息到客户端
* @param sid
* @param msg
*/
sendMsg(sid: SID, msg: IMsgRspEncode): void;
sendMsgByUid(uid: UID, msg: IMsgRspEncode): void;
getBindedSessions(): Session[];
getSessions(): Session[];
private send;
}
export {};