EasyRTC 1.0 Released

1,168 views
Skip to first unread message

Rod Apeldoorn

unread,
Dec 21, 2013, 1:03:03 AM12/21/13
to
EasyRTC v1.0 is now available with many sought after updates and improvements. Like our previous releases, EasyRTC remains an easy to install client and server kit for enabling WebRTC.

EasyRTC is now a proper Node.JS module; its demo's have been refreshed, reliability has been improved, API integration expanded, and WebRTC feature set updated.

Among the new features:
  • Now a Node.JS module instead of an application (our #1 requested feature)
  • Rooms - Clients can join one or more rooms. Can only see others in same room.
  • Applications - separate EasyRTC applications can have differing options etc.
  • API fields (Client based variables)
  • Application, room, and session fields (Server based variables)
  • Custom authentication
  • Server options handler
  • Server is now event driven (Easy to customize)
  • DataChannel support with automatic failover to websockets 
  • File transfer API using data channels with drag'n'drop handlers
  • New guides and documentation including TURN, SSL, and authentication

For installation instructions:

For community support: 

As always, if you have an bugs or have a suggestion, please let us on the group, or the EasyRTC issue tracker.

Rod Apeldoorn,
EasyRTC Server Lead,

Thomas Vanier

unread,
Jan 2, 2014, 6:53:24 AM1/2/14
to eas...@googlegroups.com
Happy New Year, and thanks for the great EasyRTC 1.0 release!

Regarding server installation, would you recommend to use the npm package (instead of downloading the server_example folder/zip manually)?
npm install easyrtc express socket.io
And start the example server with:
node node_modules/easyrtc/server_example/server.js

Cheers, Thomas

Rod Apeldoorn

unread,
Jan 3, 2014, 12:29:29 PM1/3/14
to eas...@googlegroups.com
Regarding server installation, would you recommend to use the npm package (instead of downloading the server_example folder/zip manually)?

Using the NPM package is the easiest way to install, however the server example uses the same npm package, so it's not an either/or thing. The server example zip, is just a quicker way for people to get started.

The alternative is cloning the Github repository into your node_modules folder. This is only necessary for beta testers and module developers.

Rod Apeldoorn

unread,
Jan 21, 2014, 2:26:15 PM1/21/14
to eas...@googlegroups.com
We just pushed v1.0.8 to the GitHub master branchnpm, and the demo server. This is mostly a bug-fix release, with a few documentation updates thrown in for good measure.

New Features:

  • API - Added easyrtc.getRoomApiField() convenience method to get a peers API fields.
  • Documentation - New install directions for Git users. (issue #29)

Changes:

  • API - Better TURN detection for Firefox and Chrome
  • API - Enabled 'force new connection' flag in socket.io.
  • Documentation - Various updates (inc. issue #41)
  • Demos - Added disconnect button to Instant Messaging Rooms demo

Fixes:

  • API - A couple type-o fixes in easyrtc.supportsDataChannels()
  • API - Fixed type-o in easyrtc.connect() causing bad reference to listener for signal failure. See issue #32
  • API - Fixed reference to error code in easyrtc.connect()
  • API - Made data channel checks more strict (to cover lack of support on mobile)
  • API - Fixed missing parameter when handing candidates.
  • API - Fixed bug in easyrtc.sendServerMessage when debug was enabled.
  • Server - Allowing '+' symbol in client version string. This is allowed by http://semver.org
  • Server - Removed duplicate emit of room delta list when another client joins via explicit join room command. (issue #37)

A few of the fixes relate to handling data channels, which is finally getting greater browser support (on desktop).

Claudio Vacalebre

unread,
Jan 24, 2014, 11:51:22 AM1/24/14
to eas...@googlegroups.com

Installed on AWS Micro instance & Windows Server 2012 Standard. Works smoothly. Thanks easyRTC Team for sharing!

Best, Claudio

Rod Apeldoorn

unread,
Feb 7, 2014, 7:33:21 PM2/7/14
to eas...@googlegroups.com
EasyRTC version 1.0.9 has just been pushed to GithubNPM, and our demo server. There are several fixes including better data channel interoperability between Chrome and Firefox.

New Features:
  •  Documentation - New document entitled "WebRTC Common Problems and Solutions"
Changes:
  • API - Removed support for TURN urls of the form "turn:name@domain:port" in favour of the newer form that separates the username field. Attempts to use the older form will result in an meaningful error message.
  • API - If the first attempt to call to getUserMedia fails or throws an exception, wait two seconds and try again.
  • Server - Bumped Underscore module to v1.5.x.
  • Documentation - FAQ has both new and updated questions.
  • Documentation - New documentation for upgrading EasyRTC using NPM. (issue #43)
Fixes:
  • API - Updated data channel support for Firefox so that it interops with Chrome again. 
  • API - Fixed the easyrtc.supportsDataChannel methods check for Android browsers. Data channels aren't currently supported for Android by EasyRTC.
  • API - When data channels are opened, an initial message is sent each way to verify that data channels work.
  • Server - Fixed bug where a getIceConfig request didn't return the proper format. (issue #46)
  • Documentation - Minor changes for greater consistency.
Most users can upgrade by entering 'npm update' from their application directory.

joonaski

unread,
Feb 14, 2014, 6:20:14 AM2/14/14
to eas...@googlegroups.com
Just for you to know: installed easyrtc on rasberrypi/apache and it seemed to work there also. Didn't give it much traffic but 1 to 1 connection was ok.

Joonas

Rod Apeldoorn

unread,
Mar 5, 2014, 6:55:02 PM3/5/14
to
EasyRTC v1.0.10 has just been pushed our GitHub repository, NPM,  and our demo server. The biggest fix is to allow for Express v4.0.0 which just put out a second release candidate into NPM (breaking our quick demo server).

New Features:
  •  API - Beginnings of internationalization support. This will be expanded upon in future versions.
  •  API - New media constraint function enableAudioReceive(). Control if client requests audio from peer.
  •  API - New media constraint function enableVideoReceive(). Control if client requests video from peer.
Changes:
  • API: - Updates to getPeerStatistics() to better support Firefox
Fixes:
  • Server - Removed reference to Express's configure() which they removed in v4.0.0 (issue #49)
You can update your existing installation by entering 'npm update' from your application folder.

Rod Apeldoorn

unread,
May 20, 2014, 8:19:56 PM5/20/14
to
Hi All,

We have released EasyRTC v1.0.11. You can find it in our GitHub repository, NPM, and our demo server. This is mostly a bug fix release however we have added several new helper functions.

New Features:
  • JS Client - New function getVideoSourceList() to get the list of video sources (cameras). Currently works in Chrome.
  • JS Client - New function setVideoSource() to set the video source before calling initLocalMedia.
  • Server - New function appObj.deleteRoom() - Can now delete a room! See issue #16
  • Server - New function getRoomName() for returning the associated room name. Added to roomObj and connectionRoomObj.
  • Server - New synchronous function appObj.isRoomSync() for returning a quick boolean to indicate if a room exists
  • Server - New synchronous functions getFieldSync() and getFieldValueSync() added to objects which support fields.
  • Server - New function sessionObj.emitSessionDataFieldUpdate() added for emitting session fields to all connections with the same session id.

Changes:
  • JS Client - Redid getStatistics support for Firefox.
  • Server - Depreciating roomObj.setConnection() It was incomplete and improperly documented. It works as before, but logs a warning.
  • Documentation - Changelog now says 'JS Client' instead of 'API' to reference the JavaScript client

Fixes:
  • JS Client - Fixed a bug in which entering a new room would cause you to drop any calls you had. The fix isn't perfect, leaving all rooms will still drop any calls you have.
  • JS Client - RoomJoinListener fires after storing updated data rather than before.
  • JS Client - Made candidate regexp matching case insensitive to support Firefox better.
  • JS Client - Better version number detection for Gecko not-Firefox browser userAgent strings. See issue #54
  • JS Client - A number of minor code and documentation fixes/changes to minimize warnings from Webstorm code inspection and Firefox execution.
  • Server - Fixed custom callback issue in roomObj.getConnectionObjects() which could affect custom listeners
  • Server - Fixed callbacks not always being called on default listeners for 'msgTypeRoomLeave', 'msgTypeGetIceConfig', 'msgTypeGetRoomList', 'msgTypeSetPresence'. This would cause problems in cases where custom listeners need to know when the default listener is complete.
  • Server - Added some extra checking for a condition when a client disconnected at the same time as a room field update is sent.
  • Server - Added roomParameter field to roomJoin event. This fixes issue #53
  • Server - Added additional error handling in several function to ensure objects are present
  • Server - Code clean-up. Spelling, documentation, formatting, and minor JavaScript fixes for issues found during code review
  • Server - Fixed message reply to setRoomApiField request which was invalid
  • Server - Fixed bad reference to default application name option. Added error handler so attempts to get a non-existent option are logged. 
  • Documentation - Updated ICE server help document to properly reference server option "appIceServers" 
  • Documentation - Several documentation updates to fix type-Os and improve clarity. Includes issue #39, #42
  • Documentation - Removed httpApp.configure() which caused a crash with Express v4. See issue #49, #57, #59.
  • Documentation - Improved documentation for 'demosPublicFolder' option. See issue #56
  • Server Example - Removed httpApp.configure() which caused a crash with Express v4. See issue #49, #57, #59.
  • Server Example - Specify Socket.io v0.9.x in package.json. Socket.io v1.0 is not currently supported.
   
You can update your existing installation by entering 'npm update easyrtc' from your application folder.

Special Note about Socket.io - EasyRTC does not yet support Socket.io v1.0 which just pushed a pre-release candidate to NPM. See this blog post for how to keep your application from updating past v0.9.

iuli...@gmail.com

unread,
May 21, 2014, 2:09:48 AM5/21/14
to eas...@googlegroups.com
After npm update easyrtc and nothing else get -error message >> undefined when  client connect to default channel.
If I use anterior version is working without above error message.

Rod Apeldoorn

unread,
May 21, 2014, 12:00:57 PM5/21/14
to eas...@googlegroups.com
After npm update easyrtc and nothing else get -error message >> undefined when  client connect to default channel.
If I use anterior version is working without above error message.

This is the first time I specify the 'npm update' with the easyrtc modifier, just to avoid having people update to the new Express and Socket.io versions by accident. I do wonder if you are running an older version of Node/NPM.

Could you tell me your Node.JS version and OS version?

iuli...@gmail.com

unread,
May 23, 2014, 1:11:12 AM5/23/14
to eas...@googlegroups.com
easyrtc_ser...@0.1.5 /var/web
├─┬ eas...@1.0.11
│ ├── as...@0.2.10
│ ├── col...@0.6.2
│ └── under...@1.5.2
├─┬ exp...@4.1.1
│ ├─┬ acc...@1.0.1
│ │ ├── mi...@1.2.11
│ │ └── negot...@0.4.3
│ ├── buffer...@0.2.1
│ ├── coo...@0.1.2
│ ├── cookie-s...@1.0.3
│ ├── de...@0.8.1
│ ├── escap...@1.0.1
│ ├── fr...@0.2.2
│ ├── merge-de...@0.0.2
│ ├── met...@0.1.0
│ ├── pars...@1.0.1
│ ├── path-to...@0.1.2
│ ├── q...@0.6.6
│ ├── range-...@1.0.0
│ ├─┬ se...@0.3.0
│ │ ├── de...@0.8.0
│ │ └── mi...@1.2.11
│ ├── serve-...@1.1.0
│ ├─┬ typ...@1.1.0
│ │ └── mi...@1.2.11
│ └── utils...@1.0.0
├─┬ pus...@0.1.3 extraneous
│ └── req...@2.9.203
└─┬ sock...@0.9.16
  ├── base...@0.1.0
  ├── polic...@0.0.4
  ├── re...@0.7.3
  └─┬ socket.i...@0.9.16
    ├─┬ active-x-...@0.0.1
    │ └── zepa...@0.0.5
    ├── ugli...@1.2.5
    ├─┬ w...@0.4.31
    │ ├── comm...@0.6.1
    │ ├── n...@0.3.2
    │ ├── opt...@0.0.5
    │ └── tiny...@0.0.1
    └── xmlhttp...@1.4.2
..............................................
so is:
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:        14.04
Codename:       trusty

Angel Todorov

unread,
Jun 17, 2014, 6:21:14 AM6/17/14
to eas...@googlegroups.com
Hi Rob,
I decided to upgrade to EasyRTC 1.0.11. Of course I follow your tip for downgrading to socket.io 0.9.x, by executing

npm install socket.io@0.9.x

after the EasyRTC installation. I make it on clean location, just to make sure I started from scratch.

After the upgrade, I have got following error (from client side console):
" https://my.local.ip:9443/socket.io/1/?t=1402999852787 net::ERR_CONNECTION_REFUSED socket.io.js:1659", where my.local.ip is real IP address of my intranet.

This error is throwing even from EasyRTC demos (demo_multiparty for instance) - right after launching the page demo_multiparty.html

Any hints how to solve it?

Angel

Angel Todorov

unread,
Jun 17, 2014, 6:34:24 AM6/17/14
to eas...@googlegroups.com
Some clarification needed...
the error thrown on server side is
" callback(null, connectionRoomObj);
            ^
TypeError: object is not a function"

where callback invocation is from the onRoomJoin shown below:

var onRoomJoin = function(connectionObj, roomName, callback){
    connectionObj
.util.logDebug("["+connectionObj.getAppName()+"]["+connectionObj.getEasyrtcid()+"] Running func 'onRoomJoin'");
.....
        connectionRoomObj
.emitRoomDataDelta(false, function(err, roomDataDelta){
           
// Return connectionRoomObj regardless of if there was a problem sending out the deltas
            callback
(null, connectionRoomObj);
       
});
   
});
};


since the code has been working so far, what value I should change?

Best Regards,
Angel


Eric Davies

unread,
Jun 17, 2014, 7:28:47 AM6/17/14
to eas...@googlegroups.com
Are you running an https server or an http server, because you are giving the url for an https server.

Reply all
Reply to author
Forward
Message has been deleted
0 new messages