Remove SocketIO PoC
Remove SocketIO proof of concept, as its code has been integrated into Flamenco Manager.
This commit is contained in:
parent
96cd064533
commit
0f2477370f
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,4 @@
|
||||
*.exe
|
||||
/*-poc
|
||||
*.sqlite
|
||||
*.db
|
||||
*.blend[0-9]
|
||||
|
9
Makefile
9
Makefile
@ -20,7 +20,7 @@ with-deps:
|
||||
go get github.com/golang/mock/mockgen@v1.6.0
|
||||
$(MAKE) application
|
||||
|
||||
application: flamenco-manager flamenco-worker socketio-poc
|
||||
application: flamenco-manager flamenco-worker
|
||||
|
||||
flamenco-manager:
|
||||
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-manager
|
||||
@ -28,9 +28,6 @@ flamenco-manager:
|
||||
flamenco-worker:
|
||||
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-worker
|
||||
|
||||
socketio-poc:
|
||||
go build -v ${BUILD_FLAGS} ${PKG}/cmd/socketio-poc
|
||||
|
||||
generate: generate-go generate-py generate-js
|
||||
|
||||
generate-go:
|
||||
@ -112,7 +109,7 @@ test:
|
||||
|
||||
clean:
|
||||
@go clean -i -x
|
||||
rm -f flamenco*-v* flamenco-manager flamenco-worker socketio-poc *.exe
|
||||
rm -f flamenco*-v* flamenco-manager flamenco-worker *.exe
|
||||
rm -f pkg/api/*.gen.go internal/*/mocks/*.gen.go internal/*/*/mocks/*.gen.go
|
||||
@$(MAKE) generate
|
||||
|
||||
@ -124,4 +121,4 @@ package: flamenco-manager flamenco-worker
|
||||
rm -rf dist/flamenco
|
||||
|
||||
|
||||
.PHONY: application version flamenco-manager flamenco-worker socketio-poc generate generate-go generate-py with-deps swagger-ui list-embedded test clean
|
||||
.PHONY: application version flamenco-manager flamenco-worker generate generate-go generate-py with-deps swagger-ui list-embedded test clean
|
||||
|
@ -1,116 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/labstack/echo/v4/middleware"
|
||||
"github.com/mattn/go-colorable"
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/ziflex/lecho/v3"
|
||||
|
||||
gosocketio "github.com/graarh/golang-socketio"
|
||||
"github.com/graarh/golang-socketio/transport"
|
||||
|
||||
"git.blender.org/flamenco/internal/appinfo"
|
||||
)
|
||||
|
||||
type Message struct {
|
||||
Name string `json:"name"`
|
||||
Text string `json:"text"`
|
||||
}
|
||||
|
||||
func socketIOServer() *gosocketio.Server {
|
||||
sio := gosocketio.NewServer(transport.GetDefaultWebsocketTransport())
|
||||
log.Info().Msg("initialising SocketIO")
|
||||
|
||||
// socket connection
|
||||
sio.On(gosocketio.OnConnection, func(c *gosocketio.Channel) {
|
||||
log.Info().Str("clientID", c.Id()).Msg("connected")
|
||||
c.Join("Room")
|
||||
})
|
||||
|
||||
// socket disconnection
|
||||
sio.On(gosocketio.OnDisconnection, func(c *gosocketio.Channel) {
|
||||
log.Info().Str("clientID", c.Id()).Msg("disconnected")
|
||||
c.Leave("Room")
|
||||
})
|
||||
|
||||
sio.On(gosocketio.OnError, func(c *gosocketio.Channel) {
|
||||
log.Warn().Interface("c", c).Msg("socketio error")
|
||||
})
|
||||
|
||||
// chat socket
|
||||
sio.On("/chat", func(c *gosocketio.Channel, message Message) string {
|
||||
log.Info().Str("clientID", c.Id()).
|
||||
Str("text", message.Text).
|
||||
Str("name", message.Name).
|
||||
Msg("message received")
|
||||
c.BroadcastTo("Room", "/message", message.Text)
|
||||
return "message sent successfully."
|
||||
})
|
||||
|
||||
return sio
|
||||
}
|
||||
|
||||
func addRoutes(router *echo.Echo, server *gosocketio.Server) {
|
||||
cors := middleware.CORSWithConfig(middleware.CORSConfig{
|
||||
AllowOrigins: []string{"http://localhost:8080/", "http://localhost:8081/"},
|
||||
|
||||
// List taken from https://www.bacancytechnology.com/blog/real-time-chat-application-using-socketio-golang-vuejs/
|
||||
AllowHeaders: []string{
|
||||
echo.HeaderAccept,
|
||||
echo.HeaderAcceptEncoding,
|
||||
echo.HeaderAccessControlAllowOrigin,
|
||||
echo.HeaderAccessControlRequestHeaders,
|
||||
echo.HeaderAccessControlRequestMethod,
|
||||
echo.HeaderAuthorization,
|
||||
echo.HeaderContentLength,
|
||||
echo.HeaderContentType,
|
||||
echo.HeaderOrigin,
|
||||
echo.HeaderXCSRFToken,
|
||||
echo.HeaderXRequestedWith,
|
||||
"Cache-Control",
|
||||
"Connection",
|
||||
"Host",
|
||||
"Referer",
|
||||
"User-Agent",
|
||||
"X-header",
|
||||
},
|
||||
AllowMethods: []string{"POST", "GET", "OPTIONS", "PUT", "DELETE"},
|
||||
})
|
||||
|
||||
router.Any("/socket.io/", echo.WrapHandler(server), cors)
|
||||
|
||||
}
|
||||
|
||||
func main() {
|
||||
output := zerolog.ConsoleWriter{Out: colorable.NewColorableStdout(), TimeFormat: time.RFC3339}
|
||||
log.Logger = log.Output(output)
|
||||
log.Info().Str("version", appinfo.ApplicationVersion).Msgf("starting Socket.IO PoC %v", appinfo.ApplicationName)
|
||||
|
||||
socketio := socketIOServer()
|
||||
|
||||
e := echo.New()
|
||||
e.HideBanner = true
|
||||
e.HidePort = true
|
||||
|
||||
// Hook Zerolog onto Echo:
|
||||
e.Use(lecho.Middleware(lecho.Config{
|
||||
Logger: lecho.From(log.Logger),
|
||||
}))
|
||||
|
||||
// Ensure panics when serving a web request won't bring down the server.
|
||||
e.Use(middleware.Recover())
|
||||
|
||||
addRoutes(e, socketio)
|
||||
|
||||
listen := ":8081"
|
||||
log.Info().Str("listen", listen).Msg("server starting")
|
||||
log.Info().Msg("Run `yarn serve` from the 'web' dir to run the frontend server")
|
||||
|
||||
// Start the web server.
|
||||
finalErr := e.Start(listen)
|
||||
log.Warn().Err(finalErr).Msg("shutting down")
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user