f26b72a996
Upgrade all packages to latest versions
2020-03-14 08:49:22 +01:00
80eb39b5b8
Add test for memory and redis store
2020-03-14 08:36:21 +01:00
d6104bae14
Make redis configurable
2020-03-13 22:56:11 +01:00
170c52eefa
Add store factory
2020-03-13 22:03:46 +01:00
41705177c5
Add redis store
...
Tested locally with docker-compose and two instances of peer-calls
running on different ports.
2020-03-13 21:41:03 +01:00
27d2459e1d
Make socket.ts asynchronous
...
Also do not monkey-patch socket objects with user ids.
2020-03-13 20:28:46 +01:00
aa7a6927f8
Keep active peer connections after server restart
2020-03-13 14:01:45 +01:00
cd4979c3be
Generate userIDs on server-side
...
We don't want to depend on:
1) socket.io generated IDs because they change on server reconnect
2) simple-peer generated IDs because they change for every peer
connection
We generate a single ID when the call web page is refreshed and use that
throughout the session (until page refresh).
We keep relations of user-id to socket-id on the server side in memory
and use that to get to the right socket. In the future this might be
replaced with Redis to allow multiple nodes.
If the server is restarted, but people have active calls, we want them
to keep using the active peer connections and only connect to new peers.
Ideally, we do not want to disturb the active peer connections, but peer
connections might be restarted because the in-memory store will not have
the information on for any peers in the room upon restart.
2020-03-13 13:33:54 +01:00
ba92214296
Add ability to set nickname using /nick command in chat
2020-03-13 11:19:47 +01:00
54659863b5
Closes #74
2020-03-13 08:50:13 +01:00
e250443ca3
Add webrtc-adapter for compatibility
...
https://github.com/webrtcHacks/adapter
From MDN: https://developer.mozilla.org/en-US/docs/Web/API/Screen_Capture_API/Using_Screen_Capture
Note: It may be useful to note that recent versions of the WebRTC
adapter.js shim include implementations of getDisplayMedia() to enable
screen sharing on browsers that support it but do not implement the
current standard API. This works with at least Chrome, Edge, and
Firefox.
2020-03-11 15:18:28 +01:00
9f1320a907
Add touchStart/touchEnd event handlers for video
2020-03-11 15:08:32 +01:00
a025fcad43
Add ability to toggle object-fit: cover on videos by long-pressing
2020-03-11 15:04:44 +01:00
8ebd92c53d
Add input field to specify call name
2020-03-11 14:24:36 +01:00
478df8c8fd
Fix streams.test.ts
2020-03-10 13:44:09 +01:00
e851181ffa
Fix SocketActions.test.ts
2020-03-10 13:42:47 +01:00
0ae475f898
Fix media.test.ts
2020-03-10 13:38:27 +01:00
80ac818616
Fix Toolbar.test.tsx
2020-03-10 13:16:03 +01:00
720e26a5dd
Fix CallActions.test.ts
2020-03-10 13:14:31 +01:00
9db349d4a5
Fix App.test.tsx
2020-03-10 13:14:22 +01:00
6effc10d9e
Do not remove tracks when sharing desktop and camera
2020-03-10 13:10:00 +01:00
8c0377bdaf
Make socket automatically do the handshake on each reconnect
2020-03-10 12:10:08 +01:00
46a0b1f7ea
Remove each user stream individually
2020-03-10 11:58:15 +01:00
f056048d62
Use addTrack/removeTrack over addStream/removeStream
...
The addStream and removeStream are deprecated and the MDN docs
recommend using addStream/removeStream instead.
While we add tracks, we can also add event listeners to whether or not a
track has ended and then remove a stream once all tracks in the streams
have ended.
2020-03-10 11:21:35 +01:00
53ddcdfcbf
Add catch when requesting desktop
2020-03-10 09:03:19 +01:00
2f582e66b9
Write error to log on promise rejected
2020-03-10 09:03:11 +01:00
61fc53bcf9
Add experimental support for sharing desktop
2020-03-09 11:58:28 +01:00
ee209d7889
Add display icon
2020-03-09 08:29:06 +01:00
a828b1570d
Replace doT with ejs
...
doT had a security vulnerability and ejs has even fewer dependencies:
https://www.npmjs.com/advisories/798
2019-11-19 23:41:34 -03:00
3ae120b3ba
Add ability to log requests
2019-11-19 12:48:23 -03:00
2d14e5fd33
Replace pug with doT
...
Pug contains a lot of unnecessary dependencies leading to code bloat,
which results in increased docker package size, and thus docker image
size). express-dot-engine is much simpler and performs better.
2019-11-19 12:21:19 -03:00
d4e6dfbf60
Allow specifying host to bind via BIND env var
2019-11-19 10:26:48 -03:00
1ef92f6b19
Do not always require JSON parsing from env vars
2019-11-18 23:37:09 -03:00
c7030bd3bb
Add simple handling of SIGINT/SIGTERM for Docker
2019-11-18 23:12:14 -03:00
e1b7283a94
Remove handling of SIGTERM
...
New version of socket.io cannot terminate cleanly when there are active
connections:
https://github.com/socketio/socket.io/issues/1602
2019-11-18 22:40:07 -03:00
23fabb0b0c
Do not always require custom configuration files
2019-11-18 13:01:01 -03:00
ff5a20e13f
Stop using local stream after hangup
2019-11-18 09:42:18 -03:00
c89886bbfa
Fix toolbar icons. Hangup removes video stream
2019-11-18 09:35:37 -03:00
038a617b30
Do not use core-js because it breaks minification
...
We get an error
can't convert n to string: its [Symbol.toPrimitive] method returned an object
2019-11-18 00:54:14 -03:00
11727714ec
Make <Notifications /> drop down on focus
2019-11-18 00:21:24 -03:00
b88889665f
Refactor Toolbar, move video & notifications
2019-11-17 23:51:57 -03:00
9d68e4c1f4
Add Toolbar tooltips
2019-11-17 19:32:45 -03:00
fddb88f5b8
Use <Side /> instead of position absolute
...
Some components still use position fixed. This could change in the
future.
2019-11-17 17:24:28 -03:00
58039eb086
Remove alerts from state
2019-11-17 14:28:48 -03:00
fcb47a2cc5
Dismiss notifications from component
2019-11-17 14:10:33 -03:00
67d9177a91
Add autoplay error notification
2019-11-17 10:50:04 -03:00
0a40e7202a
Make Media menu disappear after connecting
2019-11-17 09:46:11 -03:00
ef110e6fe2
Autofocus chat input
2019-11-17 09:34:02 -03:00
63bae9fc55
Fix transition group
2019-11-17 09:31:24 -03:00
b46206de1f
Add style to Media menu
2019-11-17 00:17:50 -03:00