Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTCMultiConnection 3.4.7 Release Notes #639

Closed
muaz-khan opened this issue Oct 2, 2018 · 0 comments
Closed

RTCMultiConnection 3.4.7 Release Notes #639

muaz-khan opened this issue Oct 2, 2018 · 0 comments

Comments

@muaz-khan
Copy link
Owner

v3.4.7 version is bringing mega updates in the signaling-server implementation. It will affect all existing RTCMultiConnection.js versions (releases).

RTCMultiConnection 3.4.6 or Older Versions

This section is only for those who are using heroku server (https://rtcmulticonnection.herokuapp.com:443/) for signaling.

For those who want to keep using v3.4.6 or older versions, please make sure to change socketURL ASAP:

onnection.socketURL = 'https://webrtcweb.com:9001/';

https://webrtcweb.com:9001/ is reserved to be used only for v3.4.6 or earlier versions.

Heroku App Will Be Updated To v3.4.7 Soon

If you want to use heroku app then please make sure that you're using following script:

<script src="https://rtcmulticonnection.herokuapp.com/dist/RTCMultiConnection.min.js"></script>
<script>
var connection = new RTCMultiConnection();
connection.socketURL = 'https://rtcmulticonnection.herokuapp.com:443/';
</script>

In simple words, you must also link/load RTCMultiConnection.min.js from heroku server or make sure to use v3.4.7 compilation (which is going to be released soon today: 10-02-2018).

API Are Unchanged

Nothing is changed in the API. However a few methods are removed. Here is the list:

  1. connection.broadcasters an array object
  2. connection.shiftModerationControl a function
  3. connection.onShiftedModerationControl an event
  4. connection.socket.emit('shift-moderator-control-on-disconnect') socket.io event

These are rarely used API. None of the demos are using these API. So demos are also unchanged.

These are only four APIs removed from v3.4.7.

connection.peersBackup is improved to store all extra-data information. Data is kept even if users leave.

connection.onleave = function(event) {
    if (!event.extra) {
        event.extra = connection.peersBackup[event.userid].extra;
    }
};

Though onleave event is fixed to pass valid extra-data information however peersBackup object is still useful.

v3.4.7 Targets

  1. initiator can't rejoin a room after leaving connection #428 (mostly)
  2. Event.extra is an empty object in connection.onclose function #638

What Is Special In v3.4.7?

  1. Rooms are now kept on server until all participants leave.
  2. Room-moderation control is now automatically shifted to its existing participants as soon as a moderator leaves.
  3. Moderator can join/rejoin a room many times without any issue or failure.
  4. An administration page is also created. More details in the next section.
  5. onleave event now includes valid extra-data information.
  6. peersBackup now contains all extra-data information even if users leave.

etc.

What Is Admin Page?

An admin page's URL looks like this:

http://localhost:9001/admin/

Admin page is secured using username and password. Credentials are stored in the config.json file. A config.json file looks like this:

{
  "socketURL": "/",
  "defaultDemo": "/demos/index.html",
  "socketMessageEvent": "RTCMultiConnection-Message",
  "socketCustomEvent": "RTCMultiConnection-Custom-Message",
  "port": "9001",
  "enableLogs": "true",
  "autoRebootServerOnFailure": "true",
  "isUseHTTPs": "false",
  "sslKey": "./fake-keys/privatekey.pem",
  "sslCert": "./fake-keys/certificate.pem",
  "sslCabundle": "",
  "adminUserName": "username",
  "adminPassword": "password"
}

For more information about /admin/, please check below sections.

What Is Changed On Nodejs?

  1. Scripts are modualized and moved to node_scripts directory. An NPM package will be created in future to separate the signaling stuff from main repository.
  2. Information are taken from config.json e.g. adminUserName and adminPassword
  3. People can not access or load config.json or logs.json or any other nodejs script. Only /demos/ directory is accessible to the normal users.
  4. All error logs are stored in the logs.json
  5. Admin's socket is secured and protected using adminUserName and adminPassword.

Admin Page's Role?

  1. View all active rooms and participants in each room (in realtime)
  2. Remove/Eject any user or any room from nodejs server
  3. View all error logs. Error logs has valid information to locate coding line/script where bug occurred and fix in seconds. You can also clear error logs.

More features will be added in future releases.

Here is a screenshot for an /admin/ page:
admin-page

View selected user information:
view-user-logs

View error logs:
error-logs

Search any user by his userid:
search-users

Or delete a room or delete a user: (deleting a room will remove/delete all its participants as well)
delete-room

v3.4.7 Release Date?

Today, soon. (10-02-2018)

muaz-khan added a commit to muaz-khan/Chrome-Extensions that referenced this issue Oct 2, 2018
bluedone pushed a commit to bluedone/chrome-extensions that referenced this issue May 5, 2023
SoftwareKings added a commit to SoftwareKings/chrome-extensions that referenced this issue Mar 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant