Commit Graph

527 Commits (deepcrayonfish)

Author SHA1 Message Date
Thibault Duplessis 79cf53d719 Merge branch 'master' into lobbyRemoteSocket
* master: (405 commits)
  remove CSP live setting
  remove service worker live setting
  tweak slack icon
  tweak logging order
  New Crowdin translations (#5468)
  tweak socket handler
  remove team tournament points
  upgrade dependencies
  remove team best members list
  i18n: ...ize -> ...ise
  i18n: tournament 404 tweak (#5473)
  i18n: tweak coordinates (#5473)
  i18n: misc source tweaks (#5473)
  i18n: source is british (#5473)
  i18n: tweak site description (#5473)
  log all signups in slack
  add cli example
  cosmetic
  signup agreement
  fix identification of lichess comments - for #5470
  ...
2019-09-02 19:28:05 +02:00
Thibault Duplessis 4bd371cfeb tweak socket handler 2019-09-02 07:53:22 +02:00
Thibault Duplessis 0c5a9c78b8 code tweaks 2019-08-28 20:57:55 +02:00
Thibault Duplessis 0535133cbf better show server latency 2019-08-24 18:50:16 +02:00
Thibault Duplessis fc7a3ac6c6 tweaks 2019-08-21 07:47:55 +02:00
Thibault Duplessis d415858a3b don't save events in game proxy 2019-08-20 18:05:05 +02:00
Thibault Duplessis 577ad64e22 remove debug 2019-07-22 12:49:01 +02:00
Thibault Duplessis b0100dbea1 more lobby remote socket WIP 2019-07-20 16:25:30 +02:00
Thibault Duplessis 4199b7c144 remote socket lags and tell/users 2019-07-20 13:36:41 +02:00
Thibault Duplessis 897f60bc81 remote socket: remote TellUser, use TellUsers instead 2019-07-20 10:58:02 +02:00
Thibault Duplessis 42dfea11cc remote socket: add support for Lags 2019-07-20 10:56:39 +02:00
Thibault Duplessis 05fb221943 keep remote lobby sockets alive 2019-07-19 23:27:54 +02:00
Thibault Duplessis 0d1ec7b03a fix remote socket send 2019-07-19 19:25:28 +02:00
Thibault Duplessis 9ba486cd39 handle incoming lobby remote socket messages 2019-07-19 12:15:50 +02:00
Thibault Duplessis 59abdb6a37 Revert "Add socket debug info"
This reverts commit e58a959bba.
2019-07-18 11:47:15 +02:00
Thibault Duplessis 6625075a8d Merge branch 'master' into lobbyRemoteSocket
* master:
  remove more socket debug
  Revert "Add socket debug info"
2019-07-18 11:37:38 +02:00
Thibault Duplessis 4459934596 Revert "Add socket debug info"
This reverts commit e58a959bba.
2019-07-18 11:30:06 +02:00
Thibault Duplessis 3adb6465ec lobby remote socket WIP 2019-07-18 11:11:52 +02:00
Thibault Duplessis f021c2f29a add deprecated paths 2019-07-17 12:56:26 +02:00
Thibault Duplessis ab967d7af2 extract remote socket protocol from implementation 2019-07-17 12:48:57 +02:00
Thibault Duplessis 415f473956 explicit remote socket out messages format 2019-07-17 11:42:04 +02:00
Thibault Duplessis 1560e4b3e5 simul remote socket WIP 2019-07-15 11:57:45 +02:00
Thibault Duplessis ba311b0fc3 Merge branch 'master' into simulRemoteSocket
* master:
  more sri rename fixes
  fix sri rename
  un-hardcode study fields
  rename fixes
  don't rename monitoring key
  fix wording
  consistent naming for sri
  Fix timeago years
2019-07-13 23:46:44 +02:00
Thibault Duplessis 12e6292a7e consistent naming for sri 2019-07-13 20:02:50 +02:00
Thibault Duplessis 57cb0fe893 simul remote socket WIP 2019-07-12 11:51:44 -04:00
Thibault Duplessis 733a228736 remove remoteSocketDomain and live setting 2019-07-12 08:22:53 -04:00
Thibault Duplessis 52dffbf2f6 remote socket support for evalPut - untested 2019-07-12 06:12:22 -04:00
Thibault Duplessis 5bba4b3560 implement evalGet and eval sub for remote socket
completely untested - don't deploy this
2019-07-10 22:43:19 -04:00
Thibault Duplessis f1671dc529 remote socket: no longer remove games on finish
but only when unwatched
2019-07-10 14:22:10 -04:00
Thibault Duplessis d1d0461574 fix remote socket path monitoring 2019-07-10 10:26:18 -04:00
Thibault Duplessis 1e6cbb217e remote socket unwatch 2019-07-10 10:06:17 -04:00
Thibault Duplessis 130cbe46f0 Revert "add expiration to remote socket watched games set"
This reverts commit 21c69cb640.
2019-07-10 10:04:05 -04:00
Thibault Duplessis 10938e9a5e monitor remote socket paths 2019-07-10 10:03:04 -04:00
Thibault Duplessis 21c69cb640 add expiration to remote socket watched games set
to get rid of correspondence games
2019-07-10 09:40:11 -04:00
Thibault Duplessis 311ab87a6e handle app requesting online friends in remote socket 2019-07-10 08:55:07 -04:00
Thibault Duplessis 06f0ad994c better monitor redis publish 2019-07-09 23:03:36 -04:00
Thibault Duplessis db52a333ef safer regex live settings 2019-07-09 19:15:28 -04:00
Thibault Duplessis 2806d29ecc connect to redis with lettuce/epoll 2019-07-09 18:54:00 -04:00
Thibault Duplessis ba9c5aa62c Merge branch 'master' into lettuce
* master: (29 commits)
  Only attempt to resume suspended Howler.ctx if it already exists
  Switch to performance.now()
  some clients send negative lag values
  implement remote socket disconnect/all
  exhaustive match
  remote socket incoming user lag
  overriden User.equals needs hashCode
  Close unmatched span bracket
  Fix js error
  fix revolution trophy position
  remove remote socket debug sends
  clean up remote socket for deploy
  full size study search
  New Crowdin translations (#5282)
  tweak faq#variants
  Used reverse routing instead of hardcoded link
  Fixed link to variants
  Added variants link to FAQ
  only load the required study chapters
  credit broadcast source, refactor study rich HTML
  ...
2019-07-09 18:07:23 -04:00
Thibault Duplessis ee17614c63 some clients send negative lag values 2019-07-09 14:54:10 -04:00
Thibault Duplessis 9518041197 implement remote socket disconnect/all 2019-07-09 14:25:34 -04:00
Thibault Duplessis be92e16d4e exhaustive match 2019-07-09 12:24:07 -04:00
Thibault Duplessis 3c2854b082 remote socket incoming user lag 2019-07-09 12:22:56 -04:00
Thibault Duplessis e11d8a7232 remove remote socket debug sends 2019-07-08 23:52:58 -04:00
Thibault Duplessis c86889cf71 clean up remote socket for deploy 2019-07-08 23:23:35 -04:00
Thibault Duplessis 5100a087df struggling with redis WIP
need:
- fast
- non-blocking or
  - quick blocking
  - blocking thread pool
- connection pool
- reconnect
- not netty4
2019-07-08 12:47:00 -04:00
Thibault Duplessis cca34a9fd9 replace jedis with lettuce
it's async but it pulls netty4
2019-07-07 08:25:40 -04:00
Thibault Duplessis 0a8043e836 tweak remote socket monitoring 2019-07-06 22:28:42 -04:00
Thibault Duplessis 0c3debde70 fix case 2019-07-06 19:41:13 -04:00
Thibault Duplessis 6e4e50a6bc send no-one to remote sockets by default 2019-07-06 19:03:42 -04:00
Thibault Duplessis b9306ffe6d remote socket monitoring and robustness 2019-07-06 18:55:54 -04:00
Thibault Duplessis d15653d98e new remote socket domain, live setting for user selection 2019-07-06 14:43:50 -04:00
Thibault Duplessis 76501bc11a monitor redis pool and messages 2019-07-06 11:57:17 -04:00
Thibault Duplessis 9443d84cbf redis client is not threadsafe, but redis pool is 2019-07-06 11:32:34 -04:00
Thibault Duplessis 9f923c00d8 space encoding for remote socket format 2019-07-05 15:53:22 -04:00
Thibault Duplessis 1f3e7c8215 implement flags (channels) in remote socket 2019-07-05 11:40:19 -04:00
Thibault Duplessis ef4c295004 include connection count from remote socket 2019-07-03 17:48:28 -04:00
Thibault Duplessis 26e078923c send mlat to socket server 2019-07-03 17:28:22 -04:00
Thibault Duplessis 1e6c7a06a3 fix deploy event to remote socket 2019-07-03 17:21:46 -04:00
Thibault Duplessis ff5224e484 remote socket tell/all 2019-07-03 17:13:03 -04:00
Thibault Duplessis 6c5b5ff27d websocket internal messages have no "data" field 2019-07-03 13:41:15 -04:00
Thibault Duplessis d4e786cabb register remote socket online user IDs 2019-07-01 15:26:44 -04:00
Thibault Duplessis 02e056b48a remote socket /notified 2019-07-01 15:23:58 -04:00
Thibault Duplessis ae381e5a52 remote WS WIP 2019-07-01 14:10:43 -04:00
Thibault Duplessis 96ce2bc5a9 bidir redis pub/sub with Jedis 2019-07-01 12:31:13 -04:00
Thibault Duplessis 92cc9bc4ef redis remote WS with scredis WIP
it works, but pulls akka 2.5 - where our play requires 2.4
2019-07-01 12:13:09 -04:00
Isaac Levy 832e115d52
Safer dupe socket check
Use object equality, since some case class `Member`s
could have equality for different socket connections
2019-06-20 07:43:47 -04:00
Isaac Levy 28896dc8e0 Fix Quit data race
Improve our reconnect race bandaid. The first version
of the bandaid uses a boolean flag which might not have been
set yet, because the new Socket might be in a message queue
instead of fully initiated. With the first version, we could
end up queueing a Quit message that gets processed after
the socket is reconnected.

This version does the check on the actor thread.
2019-06-19 12:01:56 -04:00
Niklas Fiekas a311bcddf6 remember data race with member.ended 2019-06-18 21:11:29 +02:00
Thibault Duplessis 0965eaffdd ensure a member only quits once
after a member is ejected, ignore its connection close event.

Before patch, the following sequence of events was possible:
- client connects to game
- client loses Internet
- client recovers Internet
- client establishes new connection with same SRI
- client notifies end of the initial connection (from before network split)
- since both connections share SRI, the new one is unregistered

this patch ensures that an ejected connection can't close a new one.
2019-06-18 13:43:22 +02:00
Thibault Duplessis 7fc19e47a7 add explanation comment 2019-06-18 12:59:07 +02:00
Isaac Levy fd42b54e16 Use faster compare methods
The static compare methods are significantly
faster than scala's Rich<Prim> compare methods,
and they are equivalent speed to subtraction but
handle edge cases correctly.
2019-06-03 20:06:53 -04:00
Isaac Levy e58a959bba Add socket debug info
- Create a new runtime setting for socket debug info
- When setting is active, bad VersionCheck messages will send additional
  info. The client can then report this info together with their current
  version. Client reporting not implemented yet, but will be a simple
  GET or json post.
2019-05-22 19:39:12 -04:00
Thibault Duplessis 3bfb7ff50b possibly fix weird disconnections in games
sometimes there can be 2 socket instances, one of which is dead.
Make it instruct its client to resync and connect to the live one.
2019-05-21 18:49:44 +02:00
Thibault Duplessis c56bbe9578 remove debug 2019-05-11 09:27:14 +07:00
Thibault Duplessis b9b0336242 implement site-wide WS announcements on CLI command 2019-05-02 11:10:15 +07:00
Thibault Duplessis c9e714dfa5 remove SocketMember.troll 2018-12-19 10:47:18 +08:00
Thibault Duplessis ee2d4e46d8 remove useless type constructors 2018-12-18 11:48:20 +08:00
Thibault Duplessis a12abe8cca implement version checks on round socket 2018-12-18 11:48:08 +08:00
Thibault Duplessis 5d32199416 cleaner socket member quit code 2018-12-16 17:43:05 +08:00
Thibault Duplessis f83507a86c some dest encoding refactoring 2018-12-15 22:25:48 +08:00
Thibault Duplessis c0147ebb29 socket controller isn't partial 2018-12-15 17:25:41 +08:00
Thibault Duplessis 58863d9e35 refactor ping v4 2018-12-15 17:23:41 +08:00
Thibault Duplessis 8c53243d34 tournament WS API 4 skips Socket.process for pings 2018-12-14 17:39:38 +08:00
Thibault Duplessis 97a93cf4b9 don't send null watchers 2018-12-13 00:09:02 +07:00
Thibault Duplessis 8ed41d2a54 experimental: null ping 2018-12-13 00:09:02 +07:00
Thibault Duplessis 2fa60091ec experimental: quick ping on site socket 2018-12-13 00:09:02 +07:00
Thibault Duplessis 3b34115767 Centis JSON reader 2018-12-11 10:54:51 +07:00
Thibault Duplessis 30e109ec2e so apparently that never happens on prod 2018-12-10 11:29:14 +07:00
Thibault Duplessis 717dc62eb0 use AtomicReference in Trouper and Duct 2018-12-10 09:35:27 +07:00
Thibault Duplessis 57c9bcd862 monitor pushing on closed WS 2018-12-09 20:17:24 +07:00
Thibault Duplessis ed0e1c5d9a ensure lone sockets are shut down 2018-12-09 10:21:25 +07:00
Thibault Duplessis e784dd8b03 ensure all socket maps are properly monitored, broomed, and shut down 2018-12-09 10:09:18 +07:00
Thibault Duplessis c1a67637c6 flatten hub.actor 2018-12-09 08:11:28 +07:00
Thibault Duplessis 880a5eeaf6 more socket related refactoring 2018-12-08 18:45:19 +07:00
Thibault Duplessis 2c52a32916 complete socket trouper rewrite and delete socket actor remains 2018-12-08 16:20:21 +07:00
Thibault Duplessis c02ad3b5f8 remove unused config 2018-12-08 14:30:25 +07:00
Thibault Duplessis d7dde06bd2 use more troupers in performance-sensitive services 2018-12-08 14:28:48 +07:00
Thibault Duplessis 9ef0a5d506 distinct bus classifiers for 'socketLeave and 'socketEnter 2018-12-08 14:05:18 +07:00
Thibault Duplessis 0b1ad3bbce use Trouper for socket channels 2018-12-08 13:57:21 +07:00
Thibault Duplessis 775df41143 fix delay randomization 2018-12-08 09:21:59 +07:00
Thibault Duplessis 69f25640a0 refactor with LoneSocket 2018-12-08 09:17:30 +07:00
Thibault Duplessis c44f10b5f6 study/relay socket trouper 2018-12-07 19:18:57 +07:00
Thibault Duplessis 3a2ad017f9 remove old hack 2018-12-07 16:16:20 +07:00
Thibault Duplessis 31036e5bf6 lobby SocketTrouper 2018-12-07 16:11:32 +07:00
Thibault Duplessis 9758f71000 site SocketTrouper 2018-12-07 15:46:24 +07:00
Thibault Duplessis c45d27d052 refactor analyse socket member add 2018-12-07 15:16:19 +07:00
Thibault Duplessis 552707253e TrouperMap.askIfPresent 2018-12-07 14:11:45 +07:00
Thibault Duplessis 62541e66ca simul SocketTrouper 2018-12-07 13:00:36 +07:00
Thibault Duplessis 6f71ea1b33 Merge branch 'master' into trouper
* master:
  remove unused timeout
  reuse makeSymbol function
  make TvBroadcast subscribe only to the selected game
  it should be ok to publish all moves just for bots
  fix blind mode form
  {master} remove temporary mobile app BC
  {master} fix blind mode toggle
2018-12-06 20:37:36 +07:00
Thibault Duplessis 757d337d93 make TvBroadcast subscribe only to the selected game 2018-12-06 18:50:48 +07:00
Thibault Duplessis 76674d5b1f SocketTrouper tweaks 2018-12-06 18:04:43 +07:00
Thibault Duplessis 675b8a3037 restrict visibility of trouper functions 2018-12-06 16:58:27 +07:00
Thibault Duplessis 0b69561f40 unname the socket hub 2018-12-06 16:32:42 +07:00
Thibault Duplessis 4d5905664a trouper socket seems to work LOCALLY.
it will probably explode in various ugly ways once on prod
2018-12-06 14:47:54 +07:00
Thibault Duplessis c901aed3e2 more trouper WIP 2018-12-06 13:10:19 +07:00
Thibault Duplessis 6db51f8ea8 tournament socket trouper WIP 2018-12-05 23:21:54 +07:00
Thibault Duplessis 20ba982d24 Trouper, TrouperMap, and SocketTrouper 2018-12-05 19:55:55 +07:00
Thibault Duplessis 04ce45525b remove monitoring 2018-08-28 08:52:54 +02:00
Thibault Duplessis 18e5ceace7 Revert "new actor map for tournament socket hub"
This reverts commit e8e16bde44.
2018-08-26 06:35:21 +02:00
Thibault Duplessis cba9c1b3ca Revert "new round socket hub WIP"
This reverts commit 2a1dc5f360.
2018-08-26 06:34:16 +02:00
Thibault Duplessis a27f56b208 Revert "unname socket hub and population actors"
This reverts commit 4bc115b587.
2018-08-26 06:33:59 +02:00
Thibault Duplessis 4bc115b587 unname socket hub and population actors 2018-08-25 11:27:50 +02:00
Thibault Duplessis 2a1dc5f360 new round socket hub WIP 2018-08-25 11:13:26 +02:00
Thibault Duplessis e8e16bde44 new actor map for tournament socket hub 2018-08-25 08:51:31 +02:00
Seung-Zin Nam c562051c3c tweak: don't do simple value assignments within a for-comprehension
... if not necessary.
2018-08-19 23:18:07 +02:00
Thibault Duplessis a3b95c7012 more socket Uid type safety 2018-08-12 12:58:40 +02:00
Thibault Duplessis ee1b65b386 syntax fix 2018-08-12 10:56:00 +02:00
Thibault Duplessis cc0010dd7a remove debug 2018-08-11 23:23:58 +02:00
Thibault Duplessis f14c4d3f42 comment socket handler iteratee map 2018-08-09 03:58:32 +02:00
Thibault Duplessis d1281ad7fb fix monitoring 2018-08-09 03:33:41 +02:00
Thibault Duplessis 3e6e435654 refactor websocket mobile BC 2018-08-08 14:19:44 +02:00
Thibault Duplessis 66597d173f refactor websocket event prepend 2018-08-08 14:16:00 +02:00
Thibault Duplessis c0282e2445 complete Socket.Uid and SocketVersion rewrite 2018-08-08 14:01:21 +02:00
Thibault Duplessis 866691dd56 Merge branch 'master' into versionedWebsocketUrlTyping
* master:
  tweak deploy script
  Manually apply translations
  Socket optimizations
  evaluation refactoring: move a few methods around
  No 'highly consistent move times' for ultra (except for streaks because highly-premoved sequences are excluded anyway)
  Revert "Consistent move time streak assessment: only mid-game"
  Consistent move time streak assessment: only mid-game
  highly --> moderately where appropriate
  Add extra cheating assessment rule
  Assessment: take flat move time streaks into account
  Assessment simplification: combine blurs and chunk blurs in one player flag
  Remove first move time for flat time detection
  Remove unnecessary code
  Be stricter on highly consistent move times
  Assessment: take blur streaks in account
2018-08-08 13:27:01 +02:00
Isaac Levy e3b3e2d2e3 Socket optimizations 2018-08-06 00:13:38 -04:00
Thibault Duplessis 0cd5b26205 improve Websocket type safety - WIP 2018-08-05 03:18:46 +02:00
Isaac Levy 4b1b7701df Send websocket version in url param
This speeds up the initial connect to an in
progress game.

Remove message replies to Pings, except for
mobile backwards compat.
2018-08-04 11:10:09 -04:00
Thibault Duplessis 40497b41e9 remove Boolean.fold - what's wrong with if-else? 2018-07-20 11:41:46 +02:00
Thibault Duplessis fab848f700 don't send deployPre message to clients 2018-05-09 04:17:19 +02:00
Thibault Duplessis f30d599f52 fix detection of bot presence in a game - closes #4277 2018-04-20 05:50:12 +02:00
Thibault Duplessis e273ad4232 send empty frames for ping; keep bot player alive in the game socket 2018-04-17 18:03:07 +02:00
Isaac Levy 36fdae55f7 Blurs & under_chat improvements
- Cleanup spectator calculation code
- Show blurs for games in progress
  (lost in ts rewrite of round)
  fixes #3794.
2017-11-16 18:48:11 -05:00
Thibault Duplessis 1229f6ad8b close all user WS connections on account close 2017-11-13 21:35:07 -05:00
Isaac Levy a679326d86
fix logging typo
`isaacl` -> `isaacly`
2017-11-08 16:08:13 -05:00
Thibault Duplessis 8c5d7bd4e2 better monitor websocket ejects 2017-10-22 22:43:23 -05:00
Thibault Duplessis feb8170be3 log WS ejection from server 2017-10-22 22:01:39 -05:00
Thibault Duplessis dd1cb47ceb scalafix: ProcedureSyntax 2017-10-21 15:06:14 -05:00
Thibault Duplessis 8c79c860cb remove unused imports with scalafix 2017-10-21 15:01:50 -05:00
Isaac Levy 2400da72b4 Prep for Steroids refactor 2017-10-09 11:28:33 -04:00