53 lines
2.0 KiB
Racket
53 lines
2.0 KiB
Racket
#lang imperative-syndicate
|
|
|
|
(provide (all-from-out "protocol.rkt")
|
|
(all-from-out "client.rkt")
|
|
(all-from-out "client/tcp.rkt")
|
|
(all-from-out "client/loopback.rkt")
|
|
(all-from-out "server.rkt")
|
|
(all-from-out "server/tcp.rkt")
|
|
(all-from-out "server/websocket.rkt"))
|
|
|
|
(require "protocol.rkt")
|
|
|
|
(require/activate "client.rkt")
|
|
(require/activate "client/tcp.rkt")
|
|
(require/activate "client/loopback.rkt")
|
|
|
|
(require/activate "server.rkt")
|
|
(require/activate "server/tcp.rkt")
|
|
(require/activate "server/websocket.rkt")
|
|
|
|
(module+ main
|
|
(require racket/cmdline)
|
|
(define tcp-port default-tcp-broker-port)
|
|
(define http-port default-http-broker-port)
|
|
(command-line #:once-any
|
|
["--tcp" port
|
|
((format "Listen on plain TCP port (default ~a)" default-tcp-broker-port))
|
|
(set! tcp-port (string->number port))]
|
|
["--no-tcp" "Do not listen on any plain TCP port"
|
|
(set! tcp-port #f)]
|
|
#:once-any
|
|
["--http" port
|
|
((format "Listen on websocket HTTP port (default ~a)" default-http-broker-port))
|
|
(set! http-port (string->number port))]
|
|
["--no-http" "Do not listen on any websocket HTTP port"
|
|
(set! http-port #f)])
|
|
(extend-ground-boot! (lambda ()
|
|
(when tcp-port (spawn-tcp-broker! tcp-port))
|
|
(when http-port (spawn-websocket-broker! http-port)))))
|
|
|
|
(define-logger syndicate/broker)
|
|
|
|
(when (log-level? syndicate/broker-logger 'debug)
|
|
(spawn #:name 'server-debug
|
|
(on (asserted (server-connection $id $scope))
|
|
(log-syndicate/broker-debug "C+ ~v ~v" id scope))
|
|
(on (retracted (server-connection $id $scope))
|
|
(log-syndicate/broker-debug "C- ~v ~v" id scope))
|
|
(on (message (server-inbound $id $p))
|
|
(log-syndicate/broker-debug "CIN ~v ~v" id p))
|
|
(on (message (server-outbound $id $p))
|
|
(log-syndicate/broker-debug "COUT ~v ~v" id p))))
|