support reusing the netflux network

export more internals from realtime input
pull/1/head
ansuz 9 years ago
parent ba3e120fbf
commit dbf1e2b870

@ -59,6 +59,7 @@ define([
var messagesHistory = [];
var chainpadAdapter = {};
var realtime;
var network;
var parseMessage = function (msg) {
return unBencode(msg);//.slice(msg.indexOf(':[') + 1);
@ -188,7 +189,7 @@ define([
wc.on('leave', onLeaving);
// Open a Chainpad session
realtime = createRealtime();
toReturn.realtime = realtime = createRealtime();
if(config.onInit) {
config.onInit({
@ -255,10 +256,29 @@ define([
return webChannel;
};
// Connect to the WebSocket channel
Netflux.connect(websocketUrl).then(function(network) {
var joinSession = function (endPoint, cb) {
// a websocket URL has been provided
// connect to it with Netflux.
if (typeof(endPoint) === 'string') {
Netflux.connect(endPoint).then(cb);
} else if (typeof(endPoint.then) ==- 'function') {
// a netflux network promise was provided
// connect to it and use a channel
endPoint.then(cb);
} else {
// assume it's a network and try to connect.
cb(network);
}
};
/* Connect to the Netflux network, or fall back to a WebSocket
in theory this lets us connect to more netflux channels using only
one network. */
joinSession(network || websocketUrl, function (network) {
// pass messages that come out of netflux into our local handler
toReturn.network = network;
network.on('disconnect', function (reason) {
if (config.onAbort) {
config.onAbort({

Loading…
Cancel
Save