This commit is contained in:
laodaming 2023-08-28 15:50:18 +08:00
parent bb8c80d7f7
commit 22e62e1e05
2 changed files with 11 additions and 11 deletions

View File

@ -59,7 +59,7 @@ var (
CheckOrigin: func(r *http.Request) bool { CheckOrigin: func(r *http.Request) bool {
return true return true
}, },
//写的缓存池 //写的缓冲队列
WriteBufferPool: &buffPool, WriteBufferPool: &buffPool,
//是否支持压缩 //是否支持压缩
EnableCompression: false, EnableCompression: false,
@ -75,8 +75,8 @@ type wsConnectItem struct {
closeChan chan struct{} //ws连接关闭chan(基本属性) closeChan chan struct{} //ws连接关闭chan(基本属性)
isClose bool //是否已经关闭(基本属性) isClose bool //是否已经关闭(基本属性)
uniqueId string //ws连接唯一标识(基本属性) uniqueId string //ws连接唯一标识(基本属性)
inChan chan []byte //接受消息缓冲(基本属性) inChan chan []byte //接受消息缓冲队列(基本属性)
outChan chan []byte //要发送回客户端的消息缓冲(基本属性) outChan chan []byte //要发送回客户端的消息缓冲队列(基本属性)
mutex sync.Mutex //互斥锁(基本属性) mutex sync.Mutex //互斥锁(基本属性)
userId int64 //用户id(基本属性) userId int64 //用户id(基本属性)
guestId int64 //游客id(基本属性) guestId int64 //游客id(基本属性)
@ -268,7 +268,7 @@ func (w *wsConnectItem) close() {
logx.Info("###websocket:", w.uniqueId, " uid:", w.userId, " gid:", w.guestId, " is closed") logx.Info("###websocket:", w.uniqueId, " uid:", w.userId, " gid:", w.guestId, " is closed")
} }
// 读取出口缓冲数据输出返回给浏览器端 // 读取出口缓冲队列数据输出返回给浏览器端
func (w *wsConnectItem) writeLoop() { func (w *wsConnectItem) writeLoop() {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
@ -289,7 +289,7 @@ func (w *wsConnectItem) writeLoop() {
} }
} }
// 接受客户端发来的消息并写入入口缓冲 // 接受客户端发来的消息并写入入口缓冲队列
func (w *wsConnectItem) readLoop() { func (w *wsConnectItem) readLoop() {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
@ -333,7 +333,7 @@ func (w *wsConnectItem) sendLoop() {
} }
} }
// 把要传递给客户端的数据放入出口缓冲 // 把要传递给客户端的数据放入出口缓冲队列
func (w *wsConnectItem) sendToOutChan(data []byte) { func (w *wsConnectItem) sendToOutChan(data []byte) {
select { select {
case <-w.closeChan: case <-w.closeChan:
@ -367,7 +367,7 @@ func (w *wsConnectItem) respondDataFormat(msgType constants.Websocket, data inte
return b return b
} }
// 处理入口缓冲中不同类型的数据(分发处理) // 处理入口缓冲队列中不同类型的数据(分发处理)
func (w *wsConnectItem) dealwithReciveData(data []byte) { func (w *wsConnectItem) dealwithReciveData(data []byte) {
var parseInfo websocket_data.DataTransferData var parseInfo websocket_data.DataTransferData
if err := json.Unmarshal(data, &parseInfo); err != nil { if err := json.Unmarshal(data, &parseInfo); err != nil {

View File

@ -44,19 +44,19 @@ type renderTask struct {
uploadUnityRenderImageTakesTime int64 //上传unity渲染结果图时间 uploadUnityRenderImageTakesTime int64 //上传unity渲染结果图时间
} }
// 发送到渲染缓冲 // 发送到渲染缓冲队列
func (w *wsConnectItem) sendToRenderChan(data []byte) { func (w *wsConnectItem) sendToRenderChan(data []byte) {
select { select {
case <-w.closeChan: //已经关闭 case <-w.closeChan: //已经关闭
return return
case w.extendRenderProperty.renderChan <- data: //发入到缓冲 case w.extendRenderProperty.renderChan <- data: //发入到缓冲队列
return return
case <-time.After(time.Second * 3): //三秒没进入缓冲就丢弃 case <-time.After(time.Second * 3): //三秒没进入缓冲队列就丢弃
return return
} }
} }
// 渲染发送到组装数据组装数据(缓冲) // 渲染发送到组装数据组装数据(缓冲队列)
func (w *wsConnectItem) renderImage() { func (w *wsConnectItem) renderImage() {
for { for {
select { select {