Mercurial > pub > ImplabJs
comparison src/implab/messaging/Client.js @ 0:fc2517695ee1
Initial commit, draft import of existing work
| author | cin |
|---|---|
| date | Thu, 01 Jun 2017 13:20:03 +0300 |
| parents | |
| children | 7d7059d2a810 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:fc2517695ee1 |
|---|---|
| 1 define( | |
| 2 [ "dojo/_base/declare", "dojo/_base/lang", "dojo/Evented", "../_LogMixin" ], | |
| 3 | |
| 4 function(declare, lang, Evented, _LogMixin) { | |
| 5 return declare([ Evented, _LogMixin ], { | |
| 6 _session : null, | |
| 7 _destination : null, | |
| 8 _id : null, | |
| 9 | |
| 10 constructor : function(session, destination, options) { | |
| 11 this._destination = destination; | |
| 12 this._session = session; | |
| 13 }, | |
| 14 | |
| 15 getDestination : function() { | |
| 16 return this._destination; | |
| 17 }, | |
| 18 | |
| 19 start : function() { | |
| 20 var me = this; | |
| 21 return me._session.createClient(me.prepareOptions({})).then( | |
| 22 function(id) { | |
| 23 me._id = id; | |
| 24 return me; | |
| 25 }); | |
| 26 }, | |
| 27 | |
| 28 prepareOptions : function(options) { | |
| 29 var me = this; | |
| 30 options.mode = me.getMode(); | |
| 31 options.destination = me.getDestination(); | |
| 32 options.client = function(msg) { | |
| 33 me.process(msg); | |
| 34 }; | |
| 35 return options; | |
| 36 }, | |
| 37 | |
| 38 process : function(msg) { | |
| 39 this.warn("Messages are not acceped by this client"); | |
| 40 }, | |
| 41 | |
| 42 stop : function() { | |
| 43 var me = this; | |
| 44 if (me._id) { | |
| 45 me.log("stop"); | |
| 46 return me._session.deleteClient({'clientId': me._id}).then(function() { | |
| 47 me._id = null; | |
| 48 return me; | |
| 49 }); | |
| 50 } | |
| 51 }, | |
| 52 | |
| 53 toString : function() { | |
| 54 return "[" | |
| 55 + [ | |
| 56 this.getMode().toUpperCase(), | |
| 57 this.getDestination(), | |
| 58 this._id ].join(',') + "]"; | |
| 59 } | |
| 60 }); | |
| 61 }); |
