Skip to content

Session模块

zerlenzhang edited this page Mar 5, 2020 · 1 revision
  • 服务器上,最重要而复杂的对象就是Session对象,很多逻辑也是围绕Session展开的
  • 每一个Tcp链接都会有一个session对象维持着,对于TCP而言,session从连接成功创建出来,直至断开连接才销毁,对于Udp而言,session是一个局部变量,只用于处理每次收到消息的逻辑,随用随删,所以长期保存tcpSession是有意义的,保存UdpSession是没有意义的。

Session.IsClient

  • 判断此session是作为客户端还是服务端

  • args:

    1. session : AbstractSession

if Session.IsClient(session ) then ... end

Session.GetAddress

  • 获取当前session的ip和端口

  • args:

    1. session : AbstractSession ip,port = Session.GetAddress(session )

Session.Close

  • 结束当前会话

  • args:

    1. session : AbstractSession Session.Close(session );

Session.SendPackage

  • 向这个session发送CmdPackage包

  • args:

    1. session : AbstractSession
    2. cmdPackage : CmdPackage 【即{stype,ctype,utag,body}】 Session.SendPackage(session ,loginRes);

Session.SendRawPackage

  • 发送RawPackage

  • args:

    1. session : AbstractSession
    2. rawPackage: RawPackage Session.SendRawPackage(session ,raw);

Session.UdpSendPackage

  • 使用udp协议发送CmdPackage,目前本函数仅当Netbus监听Udp端口时有效

  • args:

    1. ip : str
    2. port : int
    3. cmdPackage : CmdPackage 【即{stype,ctype,utag,body}】 Session.UdpSendPackage(clientIp,clientPort,msg);

Session对象具有两个用户标志位 uid和utag,可以自定义逻辑使用,我们提供接口:

utag = Session.GetUTag(session);

Session.SetUTag(session,utag);

uid = Session.GetUId(session);

Session.SetUId(session);