配置协议文档 - xuebaodev/wawaji GitHub Wiki

以下消息均是UTF8格式

来自娃娃机的配置端口心跳消息格式 {"userID":"xuebao","mac":"32CBB519760D","cmd":"heartbeat","name":"可爱小白兔"}

userID:这台娃娃机属于哪个老板。当您有志于整合多家娃娃机的管理于您自己的平台时,您可以用userID来明确率属于某个老板的娃娃机。当然这部分功能您得自己去做。我们只是提供一个可行性参数。 mac:安卓板以太网口的mac name:用于区分这是哪台娃娃机。推荐放哪种娃娃,就配置该台娃娃机名称对应。比如 放皮卡丘 就命名皮卡丘01 。灰太狼 就命名灰太狼05.这样方便快速定位到该机器

局域网:

1.获取设备列表。

发送:{"cmd":"getlist"} 每台机器都各自返回{"mac":"xxxxxx","name":"可爱小白兔"}

2.获取某台机器的当前配置

发送:{"cmd":"getconfig"}--------------注意,请往该机对应的socket发送。 返回:
{ "cmd":"configreply", "configServer":"192.168.0.116", "configPort":7776, "operateServer":"192.168.0.116", "operatePort":7770, "fps":20, "width":640, "height":480, "mac":"32CBB519760D", "encodeHW":false, "wifiPassword":"", "wifiSSID":"", "autoResolutionIndex":1, "ip":"192.168.0.123", "userID":"xuebao", "record":false, "appVersion":2, "encodeNum":2, "name":"可爱小白兔", "dhcp":true, "encodeQuality":1, "pushUrlFront":"rtmp://videoServerNameOrIP:videoServerPort/catalog/pushID", "pushUrlBack":"rtmp://videoServerNameOrIP:videoServerPort/catalog/pushID", "videoPushState_1":true, "videoPushState_2":true, "enableConfigServer":true,//20180226 add配置服务器现在变成可选项 "swtichToOne":true, //20180313 同时只推一路模式。可以通过发送0X90要求安卓版切换到另一路的视频数据。推流地址不变 "containAudio":true, //20180313 推流的视频中是否包含声音数据 "record":true, //20180313 是否开启录像功能。 开启时,开局会自动录像并存储到插入的U盘,游戏结束则停止录像。 "encoderKpbs":500,//20180426 增加了码率调整参数。之前是里面函数自动调整。现在开放接口让用户调整 }

3.应用配置到该台娃娃机

也就是2步骤cmd中的值改成applyconfig "cmd":"applyconfig"进去 即
{ "cmd":"applyconfig", "wifiSSID":"",//自动连接的wifiID。仅插入U盘时配置wifi用。实际并不推荐使用wifi推流。因为wifi带宽有限。而且不稳定 "wifiPassword":"",//wifi密码 "operateServer":"192.168.0.116",//应用服务器IP "operatePort":7770,//应用服务器端口 "configServer":"192.168.0.116",//配置服务器地址 "configPort":7776, //配置服务器的端口 "fps":20,//推流的帧率 "autoResolutionIndex":1,//预设视频分辨率的控件索引 "width":640,//推流分辨率--宽度。当有autoResolutionIndex时,以此autoResolutionIndex的值为准。 "height":480,//推流分辨率--高度。高度和宽度仅当autoResolutionIndex = -1 ,即不使用预设分辨率时,才会起作用。我们并不推荐您设置自定义的分辨率。因为摄像头不支持时,参数无法起作用。 "mac":"32CBB519760D",//该台机器的MAC "name":"可爱小白兔", "encodeHW":false,//是否硬编码 "ip":"192.168.0.123",//本机的局域网IP "userID":"xuebao",//这台娃娃机所属的用户。 "record":false,//视频录像 "appVersion":2,//当前应用的版本。。当你应用配置时,客户端并不会应用此值 "encodeNum":2,//编码速度。 "dhcp":true,//推荐总是使用dhcp。因为我们尚不支持手动设置IP。而且即使我们支持,手动设置IP也容易引起冲突。你应该使用娃娃机名称来区分娃娃机而不是记住IP地址的方式 "encodeQuality":1,//编码质量 * 1: baseline profile* 2: main profile * 3: high profile "pushUrlFront":"rtmp://videoServerNameOrIP:videoServerPort/catalog/pushID",//前摄像头的推流地址 "pushUrlBack":"rtmp://videoServerNameOrIP:videoServerPort/catalog/pushID"//后置摄像头的推流地址 "videoPushState_1":true,//前置推流地址是否推流成功 ---add at 20180104 "videoPushState_2":true,//后置推流地址是否推流成功 ---add at 20180104 "enableConfigServer":true,//20180226 add配置服务器现在变成可选项 "swtichToOne":true, //20180313 同时只推一路模式。可以通过发送0X90要求安卓版切换到另一路的视频数据。推流地址不变 "containAudio":true, //20180313 推流的视频中是否包含声音数据 "record":true, //20180313 是否开启录像功能。 开启时,开局会自动录像并存储到插入的U盘,游戏结束则停止录像。 "encoderKpbs":500,//20180426 增加了码率调整参数。之前是里面函数自动调整。现在开放接口让用户调整 }

公网:

1.获取设备列表

发送:{"cmd":"getlist", "userID":"XXX"} //标识你要获取的是哪个设备的列表 simpleServer是忽略这个参数,默认返回所有连接到配置服务器的娃娃机

返回[{"mac":"xxxxxx","name":"可爱小白兔"},{"mac":"xxxxxx1","name":"白兔"},{"mac":"xxxxxx2","name":"可爱"}] 类似这样的一个列表.如果是空则返回[]

2.获取某台机器的当前配置

{"cmd":"getconfig", "mac":"XXX"} XXX为要获取的娃娃机mac

3.应用配置 同局域网发送的数据一样。