diff options
| author | noz (OpenERP) <noz@tinyerp.com> | 2011-04-11 16:45:38 +0530 |
|---|---|---|
| committer | noz (OpenERP) <noz@tinyerp.com> | 2011-04-11 16:45:38 +0530 |
| commit | 8ca75e0b11eb712d549d91064358bb816aeef0ec (patch) | |
| tree | 8787ff3c4977eae50a93c3b8ca6080121f7ccdac /addons/web_chat/controllers/main.py | |
| parent | c2865075b16014ace644d6f0cb17e1ccc2cc4dcf (diff) | |
[FIX] Sent first chat message to self.
bzr revid: noz@tinyerp.com-20110411111538-yxvexkoyldb5xrid
Diffstat (limited to 'addons/web_chat/controllers/main.py')
| -rw-r--r-- | addons/web_chat/controllers/main.py | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/addons/web_chat/controllers/main.py b/addons/web_chat/controllers/main.py index ff5b95d6579..adb32c3a7a3 100644 --- a/addons/web_chat/controllers/main.py +++ b/addons/web_chat/controllers/main.py @@ -67,6 +67,7 @@ class PollServer(openerpweb.Controller): } """ mq = req.applicationsession.setdefault("web_chat", PollServerMessageQueue()) + mq.messages = [] #r = 'logged in' #u = generate random.randint(0,2**32) @@ -106,9 +107,9 @@ class PollServer(openerpweb.Controller): def poll(self, req, **kw): mq = req.applicationsession.setdefault("web_chat", PollServerMessageQueue()) - print "================ poll ======= ", kw - # Long Polling - method = kw.get('method') + + # Method: Long Poll + """ --> GET http://im.ajaxim.com/poll?callback=jsonp1302138663582&_1302138663582= <-- 200 OK @@ -132,7 +133,7 @@ class PollServer(openerpweb.Controller): """ - msg = [] + msg = '[]' for i in range(5): received_msg = mq.read('Guest1', i); @@ -140,27 +141,14 @@ class PollServer(openerpweb.Controller): msg = self._pollParseMessages(received_msg) time.sleep(1) else: - msg = [] + msg = '[]' time.sleep(1) - - # for i in range(60): - #r = mq.read(username,timestamp) - # if messages - # return r - # if no message sleep 2s and retry - # sleep 2 - # else - # return emptylist - msg = '[{"t":"m","s":"Guest130214008855.5","r":"Guest130214013134.26","m":"xxxxxx"}]' - -# # it's http://localhost:8002/web_chat/pollserver/poll?method=long?callback=jsonp1302147330483&_1302147330483= - - return '%s'%kw.get('callback', '') + '(' + msg + ');' + # it's http://localhost:8002/web_chat/pollserver/poll?callback=jsonp1302147330483&_1302147330483= + return '%s'%kw.get('callback', '') + '(' + str(msg) + ');' @openerpweb.httprequest def send(self, req, **kw): - print "========= send ========", kw to = kw.get('to') message = kw.get('message') @@ -192,7 +180,7 @@ class PollServer(openerpweb.Controller): if message: mq.write(m_type="m", m_from=req.applicationsession['current_user'], m_to=to, m_message=message, m_group="Users") - return {'r': 'sent'} + return '%s'%kw.get('callback', '') + '(' + simplejson.dumps({'r': 'sent'}) + ')' else: return {'r': 'error', 'e': 'send error'} @@ -221,7 +209,8 @@ class PollServer(openerpweb.Controller): def _pollParseMessages(self, messages): msg_arr = [] for msg in messages: - msg_arr.append({'t': msg['type'], 's': msg['from'], 'r': msg['to'], 'm': msg['message']}) + msg_arr.append({"t": str(msg['type']), "s": str(msg['from']), "r": str(msg['to']), "m": str(msg['message'])}) + return msg_arr def _sanitize(self, message): |
