Commit Graph

52 Commits

Author SHA1 Message Date
Calvin Montgomery c6f9b1611e Add some sanity checks for common first-startup issues 2019-02-10 10:22:16 -08:00
Calvin Montgomery 4c9e85b293 Support IO token bucket capacity > refill rate 2018-11-15 23:04:03 -08:00
Calvin Montgomery f6a58d00b2 Adjust some socket.io settings (#780) 2018-11-07 21:23:00 -08:00
Calvin Montgomery 24a13c12cf Minor fixes, logging, metrics 2018-09-30 21:03:09 -07:00
Calvin Montgomery 67b1c97d89 Add io.throttle-in-rate-limit for socket event rate 2018-07-25 21:07:07 -07:00
Calvin Montgomery 3db751b65f Fix socket count metric leak 2018-07-09 20:24:53 -07:00
Calvin Montgomery 62417f7fb8
Add eslint (#741) 2018-04-07 15:30:30 -07:00
Calvin Montgomery 95e147b5a0 Use socket.handshake instead of socket.client.request
Fixes a bug where sockets would be rejected if they connected directly
with the 'websocket' transport instead of doing an AJAX connection with
websocket upgrade (e.g. if `transports: ['websocket']` is passed to the
socket.io-client constructor).

See https://github.com/socketio/socket.io/blob/master/docs/API.md#sockethandshake
2017-12-27 14:24:33 -08:00
Calvin Montgomery fbee6d2ab7 Fix a few common causes of error logs (incl. better ffprobe error messages) 2017-12-10 16:39:06 -08:00
Calvin Montgomery 9886f648f2 Workaround for #724 2017-12-06 22:10:06 -08:00
Calvin Montgomery de5cc3352a Fix another bug with prometheus socket.io emtrics 2017-09-19 19:03:43 -07:00
Calvin Montgomery 3eb97bab6a Fix bug in cytube_sockets_num_connected metric 2017-09-04 10:04:33 -07:00
Calvin Montgomery 82004aab73 ioserver: change on disconnect to once to avoid double-counting 2017-08-14 18:23:07 -07:00
Calvin Montgomery d0c1e8cbd9 Change metric names to follow prometheus naming guide 2017-08-12 13:12:58 -07:00
Calvin Montgomery cb6cfc8455 Instrument some more metrics with prometheus 2017-08-02 21:24:44 -07:00
Calvin Montgomery 0118a6fb15 Refactor socket.io controller 2017-08-01 19:29:11 -07:00
Calvin Montgomery 5a78056c91 Some small refactoring 2017-07-24 22:08:26 -07:00
Calvin Montgomery e780e7dadb Deprecate stats table in favor of prometheus integration 2017-07-17 21:58:58 -07:00
Calvin Montgomery 07179d6c83 Upgrade to jsli 2.0 2017-07-08 20:11:54 -07:00
Calvin Montgomery 00901f9cdb Remove junk from an old abandoned project 2017-07-02 22:35:12 -07:00
Calvin Montgomery 76e0d1b7ec Use `proxy-addr` for parsing x-forwarded-for
Closes #683 by providing functionality to trust proxies other than
localhost.
2017-06-27 23:37:18 -07:00
Calvin Montgomery b23a858a8c Integrate socket.io ban check with GlobalBanDB 2017-06-05 23:14:45 -07:00
Calvin Montgomery 8306d2d1b6 Refactor logging 2017-04-04 23:02:31 -07:00
Calvin Montgomery 9dc82ad444 Enforce stricter validation on polls 2017-03-20 21:37:32 -07:00
Calvin Montgomery 99760b6989 Purge the awful refreshAccount logic
User.prototype.refreshAccount was responsible for multiple race
condition bugs as well as inefficient duplication of DB queries in an
attempt to correct such race conditions.

It has now been replaced by a more reasonable model:

  * Global user account information and aliases are fetched in parallel
    on socket connection
  * Channel rank is fetched when the user tries to join a channel
2016-10-03 23:12:22 -07:00
calzoneman 701d470494 Add initial blocking of new users in chat 2016-08-10 21:59:18 -07:00
calzoneman 016b125f49 Initial IP session cookie implementation 2016-08-08 23:03:16 -07:00
calzoneman 312892e56b Short term additional fix for #583
The previous commits do not handle all of the edge cases of #583
appropriately.  This is a short term solution that will work, but is not
as efficient as it could be.  The whole refreshAccount function needs to
be reconsidered and replaced with a more sane way of handling atomic
updates to the user's account state.
2016-06-29 22:00:25 -07:00
calzoneman 6e772c6837 Add partition map reload 2016-06-08 22:54:16 -07:00
calzoneman 77465e6b49 Add partitioning logic 2016-06-06 21:54:49 -07:00
calzoneman b69bd82a72 Add DualClusterClient for live testing phase of backend/frontend split 2016-04-23 19:53:18 -07:00
calzoneman e6234297a1 Merge 2016-02-09 20:13:58 -08:00
calzoneman 50124c8a45 Refactor backend initialization 2016-02-04 21:43:20 -08:00
calzoneman 86abebf9bf Add RedisClusterClient 2016-01-28 19:51:59 -08:00
calzoneman f8470fc8f6 Use new proxy address formatter 2016-01-23 12:46:04 -08:00
calzoneman dd73a8ee9a Automatically publish backend address to the pool 2016-01-20 23:11:55 -08:00
calzoneman eeaffe1f61 Update socket.io to version 1.4.0 2016-01-06 21:42:48 -08:00
calzoneman 8bef7924b2 Minor fix 2016-01-01 18:28:53 -08:00
calzoneman 28807344bc Import logger 2016-01-01 18:26:43 -08:00
calzoneman cdb20e8d40 Handle when a frontend disconnects 2016-01-01 18:25:12 -08:00
calzoneman 9a262da13d Set socketUser data from frontend 2015-12-30 21:57:46 -08:00
calzoneman 5b44117681 Use new protocol 2015-12-28 23:52:39 -08:00
calzoneman 9dd617d9fc Update to reflect change in endpoint key 2015-12-27 15:10:43 -08:00
calzoneman b536c15758 Initial hacks to get the split to work 2015-12-26 15:07:03 -08:00
calzoneman 10d4ec8e60 Initial work for proxy connections 2015-12-24 16:24:07 -08:00
calzoneman bfe76dae0e Check X-Forwarded-For on sockets (resolves #528) 2015-12-12 16:59:58 -08:00
calzoneman 23333ee266 Remove console logging of clientErrors from HTTP/socket.io 2015-10-30 22:26:20 -07:00
calzoneman a8cc8e4b04 Add more counters for diagnostic information 2015-10-28 23:38:17 -07:00
calzoneman 21c3a1b3cd API changes, add documentation 2015-10-25 17:20:39 -07:00
calzoneman 7b5476874d Minor function change 2015-10-21 20:56:09 -07:00