isession.go 660 B

123456789101112131415161718192021222324252627282930313233343536
  1. package nnet
  2. import "time"
  3. var (
  4. DEF_SESSION_ID uint64 = 0
  5. RUBBISH_SESSION_ID uint64 = 1
  6. SESSION_ID_START uint64 = 100
  7. )
  8. type ISession interface {
  9. Do() // session 开始工作
  10. SetFrozen(int32)
  11. Close(int32) // 停止所有工作
  12. IsClosed() bool
  13. Write(IPacket, time.Duration) error
  14. AWrite(IPacket, time.Duration) error // 异步发送
  15. GetData() interface{} // 辅助数据
  16. SetData(interface{})
  17. UpdateId(uint64) //更新ID
  18. Id() uint64
  19. SetId(uint64)
  20. GetRawConn() IConn
  21. }
  22. type ISessionCallback interface {
  23. OnClosed(ISession, int32)
  24. OnConnected(ISession) (bool, int32)
  25. OnMessage(ISession, IPacket) bool
  26. OnHeartbeat(ISession) bool
  27. }