ActionsHandler类中，函数sendData根据用户操作发送不同的数据到服务器
服务器接受来自sendData的请求数据后，发送视频流（通过webrtc里的inputChannel.onmessage）

前端主线程接受到数据后，开始执行
this.workers.dataHandle(r.data)  ——> unmarshalStream函数里，通过this.decoderWorker.postMessage(z, [D.buffer])将视频数据传输到worker
worker里，通过self.onmessage接受到来自主线程的请求并开始执行，然后通过self.postMessage发送请求并传输数据（怀疑将视频流解析成每一帧的yuv数据）到主线程

主线程通过decoderWorker.onmessage来接受来自worker的数据并执行，主要是执行函数：ReceiveDecodeMessage
ReceiveDecodeMessage函数里给cachedStreams/cachedMetas/cachedPtss/cachedRender赋值（每帧的yuv数据）

UpdateYUV通过定时器定时运行，并读取cachedStreams的数据，如下：
this.cachedStreams[e] != null && this.executeFunction("stream", {
	stream: this.cachedStreams[e],
	width: this.cachedResolution[e].width,
	height: this.cachedResolution[e].height,
	pts: this.cachedPtss[e]
});
			
			
stream函数因为提前注册过，一旦调用executeFunction，就会执行registerFunction("stream")
registerFunction("stream")里会调用updateRawYUVData

updateRawYUVData函数会将stream传送到材质贴图（_videoRawYUVTexArray里）上，显示最终的效果


handleSignal

/*****************************************************************************************************************************************************************************************************************/




旋转：
发送数据：
{
	"data": {
		"action_type": 1014,
		"rotation_action": {
			"vertical_move": 0,
			"horizontal_move": -0.003703703703703704
		}
	},
	"sampleRate": 0.02
}

心跳：
发送数据：{"data":{"action_type":1009,"echo_msg":{"echoMsg":"1650272307696"}},"track":false}

漫游：
发送数据：
{
	"data": {
		"action_type": 1,
		"clicking_action": {
			"clicking_point": {
				"x": 1396.4945740787787,
				"y": 2173.158025839534,
				"z": 1.5306104000406329
			},
			"clicking_type": 3,
			"extra": "",
			"attitude": "walk"
		},
		"clicking_state": {
			"roomTypeId": "",
			"person": 0,
			"avatarId": "",
			"skinId": "",
			"roomId": "",
			"isHost": false,
			"isFollowHost": false,
			"skinDataVersion": "",
			"avatarComponents": "",
			"nickName": "",
			"movingMode": 0,
			"attitude": "",
			"areaName": "",
			"pathName": "",
			"pathId": "",
			"avatarSize": 1,
			"extra": "",
			"prioritySync": false,
			"player": {
				"position": {
					"x": 1540,
					"y": 2310,
					"z": 0
				},
				"angle": {
					"pitch": 0,
					"yaw": 0,
					"roll": 0
				}
			},
			"camera": {
				"position": {
					"x": 1939.5182,
					"y": 2329.627,
					"z": 150
				},
				"angle": {
					"pitch": 0,
					"yaw": 182.8125,
					"roll": 0
				}
			},
			"cameraCenter": {
				"x": 1540,
				"y": 2310,
				"z": 0
			}
		}
	}
}








发送数据：{"data":{"action_type":1004,"get_neighbor_points_action":{"point":{"x":1400,"y":2175,"z":0},"level":1,"containSelf":true,"searchRange":1000}}}

