1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-07-29 22:18:31 +00:00

lol commit messages

This commit is contained in:
Kane York 2015-10-27 21:21:06 -07:00
parent e9801e6ca3
commit 74bc15e0e9
8 changed files with 117 additions and 31 deletions

View file

@ -6,6 +6,7 @@ import (
"errors"
"fmt"
"golang.org/x/net/websocket"
"io"
"log"
"net/http"
"strconv"
@ -74,43 +75,44 @@ var gconfig *ConfigFile
// Create a websocket.Server with the options from the provided Config.
func setupServer(config *ConfigFile, tlsConfig *tls.Config) *websocket.Server {
gconfig = config
sockConf, err := websocket.NewConfig("/", config.SocketOrigin)
if err != nil {
log.Fatal(err)
}
// sockConf, err := websocket.NewConfig("/", config.SocketOrigin)
// if err != nil {
// log.Fatal(err)
// }
SetupBackend(config)
if config.UseSSL {
cert, err := tls.LoadX509KeyPair(config.SSLCertificateFile, config.SSLKeyFile)
if err != nil {
log.Fatal(err)
}
tlsConfig.Certificates = []tls.Certificate{cert}
tlsConfig.ServerName = config.SocketOrigin
tlsConfig.BuildNameToCertificate()
sockConf.TlsConfig = tlsConfig
// if config.UseSSL {
// cert, err := tls.LoadX509KeyPair(config.SSLCertificateFile, config.SSLKeyFile)
// if err != nil {
// log.Fatal(err)
// }
// tlsConfig.Certificates = []tls.Certificate{cert}
// tlsConfig.ServerName = config.SocketOrigin
// tlsConfig.BuildNameToCertificate()
// sockConf.TlsConfig = tlsConfig
// }
}
sockServer := &websocket.Server{}
sockServer.Config = *sockConf
sockServer.Handler = HandleSocketConnection
// sockServer := &websocket.Server{}
// sockServer.Config = *sockConf
// sockServer.Handler = HandleSocketConnection
go deadChannelReaper()
return sockServer
return nil
}
// Set up a websocket listener and register it on /.
// (Uses http.DefaultServeMux .)
func SetupServerAndHandle(config *ConfigFile, tlsConfig *tls.Config, serveMux *http.ServeMux) {
sockServer := setupServer(config, tlsConfig)
_ = setupServer(config, tlsConfig)
log.Print("hi")
if serveMux == nil {
serveMux = http.DefaultServeMux
}
serveMux.HandleFunc("/", ServeWebsocketOrCatbag(sockServer.ServeHTTP))
handler := websocket.Handler(HandleSocketConnection)
serveMux.HandleFunc("/", ServeWebsocketOrCatbag(handler.ServeHTTP))
serveMux.HandleFunc("/pub_msg", HBackendPublishRequest)
serveMux.HandleFunc("/dump_backlog", HBackendDumpBacklog)
serveMux.HandleFunc("/update_and_pub", HBackendUpdateAndPublish)
@ -132,6 +134,8 @@ func ServeWebsocketOrCatbag(sockfunc func(http.ResponseWriter, *http.Request)) h
func HandleSocketConnection(conn *websocket.Conn) {
// websocket.Conn is a ReadWriteCloser
fmt.Println("Got socket connection from", conn.Request().RemoteAddr)
var _closer sync.Once
closer := func() {
_closer.Do(func() {
@ -156,6 +160,10 @@ func HandleSocketConnection(conn *websocket.Conn) {
}
clientChan <- msg
}
if err != io.EOF {
fmt.Println("Error while reading from client:", err)
}
errorChan <- err
close(errorChan)
close(clientChan)
@ -198,6 +206,7 @@ RunLoop:
}
// Exit
fmt.Println("End socket connection from", conn.Request().RemoteAddr)
// Launch message draining goroutine - we aren't out of the pub/sub records
go func() {