UNPKG

sdg

Version:

pomelo ts

74 lines (73 loc) 1.82 kB
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 {};