Golang实践经验和教训( 五 )

第一种方法:HALO项目使用的语言是Golang 。 它确实提供了本机同步机制 , 例如本机通道和锁 , 并且能够使用轻量级线程(协程)以进行并发处理 。

具体处理过程:

首先 , 设计一个代表会话和超时处理程序的数据结构 。

type Session struct {

State SessionState

Id SessionId

RemoteIp string

type TimeoutHandler struct {

callback func(Session)

session Session

duration int

timer *timer.Timer

会话数据结构使用会话ID , 相邻链路IP和当前会话状态来标识连接会话 。

推荐阅读