@kadira/react-native-storybook
Version:
A better way to develop React Native Components for your app
86 lines (61 loc) • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _express = require('express');
var _express2 = _interopRequireDefault(_express);
var _querystring = require('querystring');
var _querystring2 = _interopRequireDefault(_querystring);
var _http = require('http');
var _http2 = _interopRequireDefault(_http);
var _ws = require('ws');
var _ws2 = _interopRequireDefault(_ws);
var _middleware = require('./middleware');
var _middleware2 = _interopRequireDefault(_middleware);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Server = function () {
function Server(options) {
var _this = this;
(0, _classCallCheck3.default)(this, Server);
this.options = options;
this.httpServer = _http2.default.createServer();
this.expressApp = (0, _express2.default)();
this.expressApp.use((0, _middleware2.default)(options));
this.httpServer.on('request', this.expressApp);
this.wsServer = _ws2.default.Server({ server: this.httpServer });
this.wsServer.on('connection', function (s) {
return _this.handleWS(s);
});
}
(0, _createClass3.default)(Server, [{
key: 'handleWS',
value: function handleWS(socket) {
var _this2 = this;
if (this.options.manualId) {
var params = socket.upgradeReq && socket.upgradeReq.url ? _querystring2.default.parse(socket.upgradeReq.url.substr(1)) : {};
if (params.pairedId) {
socket.pairedId = params.pairedId;
}
}
socket.on('message', function (data) {
_this2.wsServer.clients.forEach(function (c) {
if (!_this2.options.manualId || socket.pairedId && socket.pairedId === c.pairedId) {
return c.send(data);
}
});
});
}
}, {
key: 'listen',
value: function listen() {
var _httpServer;
(_httpServer = this.httpServer).listen.apply(_httpServer, arguments);
}
}]);
return Server;
}();
exports.default = Server;