fix
This commit is contained in:
parent
e5e51fc6d5
commit
f04330c85d
|
@ -133,15 +133,15 @@ func (l *DataTransferLogic) DataTransfer(w http.ResponseWriter, r *http.Request)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//循环读客户端信息
|
//循环读客户端信息
|
||||||
go ws.readLoop()
|
go ws.acceptBrowserMessage()
|
||||||
//循环把数据发送给客户端
|
//消费出口数据并发送浏览器端
|
||||||
go ws.writeLoop()
|
go ws.consumeOutChanData()
|
||||||
//推消息到云渲染
|
//消费入口数据
|
||||||
go ws.sendLoop()
|
go ws.consumeInChanData()
|
||||||
//操作连接中渲染任务的增加/删除
|
//操作连接中渲染任务的增加/删除
|
||||||
go ws.operationRenderTask()
|
go ws.operationRenderTask()
|
||||||
//消费渲染缓冲队列
|
//消费渲染缓冲队列
|
||||||
go ws.renderImage()
|
go ws.consumeRenderImageData()
|
||||||
//心跳
|
//心跳
|
||||||
ws.heartbeat()
|
ws.heartbeat()
|
||||||
}
|
}
|
||||||
|
@ -277,7 +277,7 @@ func (w *wsConnectItem) close() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 读取出口缓冲队列数据输出返回给浏览器端
|
// 读取出口缓冲队列数据输出返回给浏览器端
|
||||||
func (w *wsConnectItem) writeLoop() {
|
func (w *wsConnectItem) consumeOutChanData() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
logx.Error("write loop panic:", err)
|
logx.Error("write loop panic:", err)
|
||||||
|
@ -297,8 +297,25 @@ func (w *wsConnectItem) writeLoop() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 接受客户端发来的消息并写入入口缓冲队列
|
// 消费websocket入口数据池中的数据
|
||||||
func (w *wsConnectItem) readLoop() {
|
func (w *wsConnectItem) consumeInChanData() {
|
||||||
|
defer func() {
|
||||||
|
if err := recover(); err != nil {
|
||||||
|
logx.Error("send loop panic:", err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-w.closeChan:
|
||||||
|
return
|
||||||
|
case data := <-w.inChan:
|
||||||
|
w.dealwithReciveData(data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 接受浏览器端发来的消息并写入入口缓冲队列
|
||||||
|
func (w *wsConnectItem) acceptBrowserMessage() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
logx.Error("read loop panic:", err)
|
logx.Error("read loop panic:", err)
|
||||||
|
@ -324,23 +341,6 @@ func (w *wsConnectItem) readLoop() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 消费websocket入口数据池中的数据
|
|
||||||
func (w *wsConnectItem) sendLoop() {
|
|
||||||
defer func() {
|
|
||||||
if err := recover(); err != nil {
|
|
||||||
logx.Error("send loop panic:", err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-w.closeChan:
|
|
||||||
return
|
|
||||||
case data := <-w.inChan:
|
|
||||||
w.dealwithReciveData(data)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 把要传递给客户端的数据放入出口缓冲队列
|
// 把要传递给客户端的数据放入出口缓冲队列
|
||||||
func (w *wsConnectItem) sendToOutChan(data []byte) {
|
func (w *wsConnectItem) sendToOutChan(data []byte) {
|
||||||
select {
|
select {
|
||||||
|
|
|
@ -56,8 +56,8 @@ func (w *wsConnectItem) sendToRenderChan(data []byte) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 渲染发送到组装数据组装数据(缓冲队列)
|
// 消费渲染缓冲队列数据
|
||||||
func (w *wsConnectItem) renderImage() {
|
func (w *wsConnectItem) consumeRenderImageData() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
logx.Error("func renderImage err:", err)
|
logx.Error("func renderImage err:", err)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user