* Remove jQuery
* Remove browser (vendor) prefixes for some CSS properties
* Use simple device orientation test
* Realign D-pad pointers
* Make GameBoy text unselectable
* Cleanup console.log
* Keep 90% size on mobile browsers due to gh-ribbon overlap
* Remove legacy `unselectable="on"` attributes
* Align UI buttons
* Remove not used UI elements
* Change Options button
* Don't show player change message when not in a game
* Add click/touch handler for circle-pad
Since Pion's webrtc v3.0.13 and this fix if both peers have some fmtp set then codecs should match exactly. By default Pion defines a list of supported codecs with fmtp set but different browsers set their own fmtp values by default as well therefore they may not match.
To fix this we can define our own list of codecs on the server with empty fmtp so it will match any client codecs.
See: e5c8c659ca/rtpcodec.go (L99)
(experimental feature)
Before a worker can start, it should have a configuration file. In case if such a file is not found it may request configuration from the coordinator to which it connected.
Added example logic if a worker is needed to be blocked until a successful packet exchange with a coordinator is being made.
* Add error return for config loader
* Add config loaded flag to worker
* Add zone flag
* Add a custom mutex lock with timout
* Refactor worker runtime
* Refactor internal api
* Extract monitoring server config
* Extract worker HTTP(S) server
* Add generic sub-server interface
* Add internal coordinator API
* Add internal routes and handlers to worker
* Add internal worker API
* Refactor worker run
* Migrate serverId call to new API
* Add packet handler to cws
* Extract handlers for internal worker routes in coordinator
* Pass worker to the worker internal heandlers
* Cleanup worker handlers in coordinator
* Add closeRoom packet handler to the API
* Add GetRoom packet handler to the API
* Add RegisterRoom packet handler to the API
* Add IceCandidate packet handler to the API (internal and browser)
* Add Heartbeat packet handler to the API (internal and browser)
* Rename worker routes init function
* Extract worker/coordinator internal ws handlers
* Update timed locker
* Allow sequential timed locks
* Add config request from workers
* Add nil check for the route registration functions
- All voice is fan-in and broadcasted.
- Currently, voice is sent in the same game track. TODO: send voice in different track (Having issue with dynamically addTrack after offer and answer)
* Add stat module initial example
* Add stats module help overlay overlap handling
* Add generic graph canvas image builder
* Add more generic graphing module
* Clean up the code
* Some fixes
* Change graphing styles
* Clean some stats module code
* Move to RAF rendering to burn your CPU
* Add not standardized memory stats module
* Fix initial stats visibility flag handle
* Refactor input poll to make it x2-3 faster (0.4ms+ -> 0.1ms)
* If Server is sendrecv transceiver, client needs to be sendrecv on Firefox.
c641b530a0
Co-authored-by: giongto35 <giongto35@yahoo.com>