59 Commits

Author SHA1 Message Date
f26b72a996 Upgrade all packages to latest versions 2020-03-14 08:49:22 +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
e851181ffa Fix SocketActions.test.ts 2020-03-10 13:42:47 +01:00
720e26a5dd Fix CallActions.test.ts 2020-03-10 13:14:31 +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
61fc53bcf9 Add experimental support for sharing desktop 2020-03-09 11:58:28 +01: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
b88889665f Refactor Toolbar, move video & notifications 2019-11-17 23:51:57 -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
a8f3757d53 Do not join call automatically
Present a user with a menu to join call manually
2019-11-16 23:49:14 -03:00
6fd6a4edf3 Add actions/MediaActions and reducers/media 2019-11-16 12:23:04 -03:00
92a5f2063c Use SignalData on server-side
This should not cause compile issues when simple-peer is not installed
(because client-side JS will be precompiled after pkg is published in
NPM repository) because types are not used in runtime.
2019-11-16 00:06:41 -03:00
7fa09fa6b8 Use TypedEmitter for client socket connections 2019-11-15 23:38:19 -03:00
45486aa837 Fix SocketActions.test.ts 2019-11-14 00:30:09 -03:00
03aa7696ba Do not count system messages for unread 2019-11-14 00:01:32 -03:00
b7f2b454ba Replace underscore by lodash 2019-11-13 22:16:34 -03:00
4659151892 Fix NotifyActions.test.ts 2019-11-13 21:35:27 -03:00
0075d93879 Fix simple-peer mock 2019-11-13 21:34:14 -03:00
4bdd2e4cae Fix CallActions.test.ts 2019-11-13 21:28:43 -03:00
3a5b07c218 Fix broken ts build 2019-11-13 20:08:10 -03:00
4fa6a0d17a Refactor all components 2019-11-13 18:36:31 -03:00
e9926e3484 Refactor actions/reducers to TS 2019-11-13 11:16:09 -03:00
085fae4b22 Fix send file name 2019-11-11 23:18:53 -03:00
6d3201d1fe Fix broken tests 2019-11-11 23:10:51 -03:00
7e5c7db3f9 Show all notifications in chat log 2019-11-11 22:21:25 -03:00
644fcbe06d Add ability to send file via base64-encoded msg 2019-11-11 22:14:37 -03:00
bc167053f3 Use facingMode: user when retrieving user video 2019-11-11 19:52:18 -03:00
15e870a0d5 Move tests in same folder as modules
This is to make imports cleaner
2019-07-07 19:16:31 +08:00
Michael H. Arieli
4e6657f19a Small code cleanup 2018-11-27 16:08:22 -08:00
Michael H. Arieli
24eddf083f Updated chat look and feel
Changed to simple entry list
2018-11-24 18:55:27 -08:00
Michael H. Arieli
721e993dc2 Fixed lint testing 2018-11-23 17:41:39 -08:00
Michael H. Arieli
0d8d3fbb33 Implemented socket chat 2018-11-23 16:55:48 -08:00
Jerko Steiner
6d92c1add3 Fix broken tests after update 2018-11-07 10:36:15 +01:00
cc1639eade Add compatibility layer for iOS 11 2017-06-20 19:11:51 -04:00
57b3d3ca6a Migrate to redux
Detailed list of changes

1. Migrate off flux to redux stores, closes #35
2. Reorganize stores
3. Use PureComponents, closes #36
4. Rewrite most tests, increase coverage to 100%, closes #17
5. Allow preview to people without camera & mic, closes #26
6. Add package-lock.json for npm 5
7. Add mock of window object, closes #13
2017-06-18 09:36:53 -04:00
df37ed93fb Allow peers w/o streams to receive streams, closes #26
Related to: https://github.com/feross/simple-peer/issues/95
2017-06-18 08:56:11 -04:00
cad9b70d50 Add ACTIVE_TOGGLE 2017-06-18 08:24:01 -04:00
54c7cdad00 Fix linting errors 2017-06-17 23:17:31 -04:00
edda50b287 Reorganize window 2017-06-17 23:14:26 -04:00
368fa5102b Move peer stuff to actions 2017-06-17 22:54:29 -04:00
e0474ccb4f Make calls work 2017-06-17 13:22:40 -04:00