beego websocket应用

时间:2025-02-28 07:51:04
package controllers

import (
	"encoding/json"
	"/astaxie/beego"
	"/gorilla/websocket"
	"net/http"
	"youku/models"
)

type BarrageController struct {
	
}

type WsData struct {
	CurrentTime int
	EpisodesId  int
}

var (
	// 跨域
	upgrader = {
		CheckOrigin: func(r *) bool {
			return true
		},
	}
)

// 获取弹幕websocket
// @router /barrage/ws [*]
func (this *BarrageController) BarrageWs() {
	var (
		conn     *
		err      error
		data     []byte
		barrages []
	)
	if conn, err = (, , nil); err != nil {
		goto ERR
	}
	for {
		if _, data, err = (); err != nil {
			goto ERR
		}
		var wsData WsData
		// 获取json数据
		([]byte(data), &wsData)
		endTime :=  + 60 // 一分钟内的弹幕
		// 获取弹幕列表
		_, barrages, err = (, , endTime)
		if err == nil {
			// 发送数据
			if err := (barrages); err != nil {
				goto ERR
			}
		}
	}

ERR:
	()
}