UNPKG

awv3

Version:
1 lines 2.5 kB
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}exports.__esModule=!0;var _map=require("babel-runtime/core-js/map"),_map2=_interopRequireDefault(_map),_promise=require("babel-runtime/core-js/promise"),_promise2=_interopRequireDefault(_promise),_classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_possibleConstructorReturn2=require("babel-runtime/helpers/possibleConstructorReturn"),_possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2),_inherits2=require("babel-runtime/helpers/inherits"),_inherits3=_interopRequireDefault(_inherits2),_socket=require("socket.io-client"),_socket2=_interopRequireDefault(_socket),_base=require("../communication/base"),_base2=_interopRequireDefault(_base),_parser=require("../core/parser"),_parser2=_interopRequireDefault(_parser),SocketIO=function(e){function t(r){return(0,_classCallCheck3["default"])(this,t),(0,_possibleConstructorReturn3["default"])(this,e.call(this,r))}return(0,_inherits3["default"])(t,e),t.prototype.connect=function(){var e=this,r=arguments.length<=0||void 0===arguments[0]?this.url:arguments[0],n=arguments[1];return new _promise2["default"](function(o,i){e.url=r,e.socket=(0,_socket2["default"])(r),e.socket.once("connect",function(){e.socket.once("permission",function(t){e.connected=!0,e.id=t.id,e.emit("connected",e),o(e)}),e.socket.emit("init",n||e.options)}),e.socket.on("connect_error",function(e){return i(e)}),e.socket.on("connect_timeout",function(e){return i(e)});var s=void 0;e.socket.on("binary",function(r,n){t._ack(e.socket),s&&(0,_parser.handleResult)(s,new Uint8Array(r))}),e.socket.on("json",function(r){t._ack(e.socket),"BeginFrame"===r.from&&(s=e.tasks.get(r.transactionID)),s&&(0,_parser.handleResult)(s,r),s&&"EndFrame"===r.from&&r.transactionID===s.id&&(e.tasks["delete"](s.id),s=void 0)})})},t.prototype.disconnect=function(){this.socket.disconnect(),this.socket=void 0,this.tasks=new _map2["default"],this.emit("disconnected",this)},t.prototype.request=function(e,t){var r=this;return new _promise2["default"](function(n,o){var i=(0,_parser.createContext)(t,n,o,e);i.options.callback({type:_parser2["default"].Factory.Started,context:i}),r.tasks.set(i.id,i),r.socket.emit("send",i.id,e)}).then(function(e){return e.options.callback({type:_parser2["default"].Factory.Finished,context:e}),e})},t._ack=function(e){e&&e.emit("received")},t}(_base2["default"]);exports["default"]=SocketIO;