Шлюз server-sfu
This commit is contained in:
47
socket/socket.go
Normal file
47
socket/socket.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package socket
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
|
||||
var upgrader = websocket.Upgrader{
|
||||
ReadBufferSize: 1024,
|
||||
WriteBufferSize: 1024,
|
||||
CheckOrigin: func(r *http.Request) bool {
|
||||
// Разрешаем со всех origin
|
||||
return true
|
||||
},
|
||||
}
|
||||
|
||||
// Обработчик WebSocket соединений
|
||||
func HandleWebSocket(w http.ResponseWriter, r *http.Request) {
|
||||
conn, _ := upgrader.Upgrade(w, r, nil)
|
||||
defer conn.Close()
|
||||
|
||||
// Канал для передачи байтов
|
||||
dataChan := make(chan []byte)
|
||||
|
||||
// Запуск обработчика в горутине
|
||||
go processData(dataChan)
|
||||
|
||||
for {
|
||||
messageType, p, err := conn.ReadMessage()
|
||||
if err != nil || messageType != websocket.BinaryMessage {
|
||||
break
|
||||
}
|
||||
// Передача байтов для обработки
|
||||
dataChan <- p
|
||||
}
|
||||
}
|
||||
|
||||
func processData(data <-chan []byte) {
|
||||
for bytes := range data {
|
||||
// Логика обработки байтов
|
||||
if bytes[0] == 0x01 {
|
||||
fmt.Print("Type 0x01 received")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user