34 lines
860 B
Go
34 lines
860 B
Go
package codec
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/panjf2000/gnet/v2"
|
|
)
|
|
|
|
// CROSS_DOMAIN 定义跨域策略文件内容
|
|
const CROSS_DOMAIN = "<?xml version=\"1.0\"?><!DOCTYPE cross-domain-policy><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>\x00"
|
|
|
|
// TEXT 定义跨域请求的文本格式
|
|
const TEXT = "<policy-file-request/>\x00"
|
|
|
|
// Handle 处理网络连接
|
|
func Handle(conn gnet.Conn) error {
|
|
// 读取数据并检查是否为跨域请求
|
|
data, err := conn.Peek(len(TEXT))
|
|
if err != nil {
|
|
log.Printf("Error reading cross-domain request: %v", err)
|
|
return err
|
|
}
|
|
|
|
if string(data) == TEXT { //判断是否是跨域请求
|
|
log.Printf("Received cross-domain request from %s", conn.RemoteAddr())
|
|
// 处理跨域请求
|
|
conn.Write([]byte(CROSS_DOMAIN))
|
|
conn.Discard(len(TEXT))
|
|
return nil
|
|
}
|
|
|
|
return nil
|
|
}
|