今天晚上的开发,继续遇到问题,由于中心站和服务器采用异步通信机制,中心站对已经发出的消息,不必等待服务器的返回而采取相应的动作,而是当服务器返回时 自动去判断消息的类型采取相应的动作。 这里就遇到了问题,由于服务器返回的消息过于简单,不便于中心站根据消息类型采取相应的动作,
比如
中心站发出一条注册终端的消息,消息内容为 命令+终端号,然后中心站就去干别的事情了,不必等待服务器返回。
服务器在成功注册之后返回 命令+Success代表注册成功,这就要求中心站在收到这条消息是能够判断出哪个终端注册成功,此时利用一个事件集数组来实现这部分内容,原理如下:
在向服务器发送事件消息的时候,同时把此消息加入事件集(一个一维数组代表发出的消息),待中心站收到消息后去查事件集列表,来判断此服务器发来的消息,对应于中心站发出的哪条消息,然后采取行动。