networked-aframe
Version:
A web framework for building multi-user virtual reality experiences.
46 lines (39 loc) • 1.3 kB
JavaScript
const WsEasyRtcAdapter = require("./WsEasyRtcAdapter");
const EasyRtcAdapter = require("./EasyRtcAdapter");
const WebrtcAdapter = require("./naf-webrtc-adapter");
const SocketioAdapter = require('./naf-socketio-adapter');
const UWSAdapter = require('./naf-uws-adapter');
class AdapterFactory {
constructor() {
this.adapters = {
"wseasyrtc": WsEasyRtcAdapter,
"easyrtc": EasyRtcAdapter,
"socketio": SocketioAdapter,
"webrtc": WebrtcAdapter,
"uws": UWSAdapter,
};
this.IS_CONNECTED = AdapterFactory.IS_CONNECTED;
this.CONNECTING = AdapterFactory.CONNECTING;
this.NOT_CONNECTED = AdapterFactory.NOT_CONNECTED;
}
register(adapterName, AdapterClass) {
this.adapters[adapterName] = AdapterClass;
}
make(adapterName) {
var name = adapterName.toLowerCase();
if (this.adapters[name]) {
var AdapterClass = this.adapters[name];
return new AdapterClass();
} else {
throw new Error(
"Adapter: " +
adapterName +
" not registered. Please use NAF.adapters.register() to register this adapter."
);
}
}
}
AdapterFactory.IS_CONNECTED = "IS_CONNECTED";
AdapterFactory.CONNECTING = "CONNECTING";
AdapterFactory.NOT_CONNECTED = "NOT_CONNECTED";
module.exports = AdapterFactory;