20210225关于river node适配器的events - ziyouzy/2021blog GitHub Wiki
适配器的意义在于反馈event(signals与error)以及生成新News管道,这对于数据源类型的适配器来说同样如此,两者都是存在的意义,而且必要时可以没有News(如心跳包),也不能没有Signals,或者说,各个适配器的Uid的首要任务是在向上层发送events时,确保各个适配器在整体系统中唯一的识别性
这让我此刻联想到了之后会去设计的那些会包含多个river-node的复杂数据结构,如,用来处理某个Net.conn所发来的数据,让其转换成要给physicalnode:
大概会是这样的结构:
type zconn struct{
con net.Conn
//signals Singals
//errors Errors
hbraw chan struct{}
HB NodeAbstract
crcRaws chan []byte
crcPassNews chan []byte
crcNotPassNews chan []byte
CRC NodeAbstract
stampRaws chan []byte
stampNews chan []byte
Stamps NodeAbstract
}
or
type zconn struct{
con net.Conn
rivernodes [3]NodeAbstractFunc
//以及相关管道
}
zconn结构自身并不会存在Uid,而可能会存在处理各个event的函数
或者说,zconn的本质其实就是当前所用做测试所设计的package testpkg,他未必会存在uid,但是会存在event.go
之前我所担心的connect.go文件内独立的函数,在之后的实战中,都会先将“node”组装成“river”的结构类,独立的函数都会编程这个结构类自身的方法