网络通信接口 - laekov/dgebc GitHub Wiki

使用 http 协议进行网络通信.

worker 端使用了 libhttp + civetweb 作为通信库.

worker 端服务

/spread_gene

post 接口, 键值为 genescore, 代表向该 worker 散布一个适应度为 score 的基因.

score-1, 则代表该基因未被计算过, worker 会首先对其进行计算. 此功能主要用于启动程序时 server 向 worker 分配最初的工作.

worker 端内部对该基因进行重组和变异后进行计算.

/status

普通接口,用于被 server 轮询以判断该 client 状态。返回格式:

g,${steps_per_second}

server 端服务

/register_worker

由 worker 端将自己的端口号发给 server, 以便于 server 统计当前活跃的客户端.

/get_workers

获取当前活跃的 worker 列表。返回格式:

${ip},${ip},...,${ip},

/dump

worker 将某个基因和它的分数发送给 server. 格式与 worker 的 /spread_gene 相同.

/get_gene

由 player 调用, server 返回所有当前存活的 worker 的小车的列表。返回格式:

${ip}:${speed},${gene},${score},${gene},${score},${gene},${score},...;${ip}:${speed},${gene},${score},${gene},...;...