[FIX] Sent first chat message to self.

bzr revid: noz@tinyerp.com-20110411111538-yxvexkoyldb5xrid
This commit is contained in:
noz (OpenERP) 2011-04-11 16:45:38 +05:30
parent c2865075b1
commit 8ca75e0b11
2 changed files with 13 additions and 24 deletions

View File

@ -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):

View File

@ -105,7 +105,7 @@
login: this.settings.pollServer + '/login',
logout: this.settings.pollServer + '/logout',
register: this.settings.pollServer + '/register',
poll: this.settings.pollServer + '/poll?method=' + this.settings.pollType,
poll: this.settings.pollServer + '/poll',
send: this.settings.pollServer + '/send',
status: this.settings.pollServer + '/status',
resume: this.settings.pollServer + '/resume'
@ -116,7 +116,7 @@
queryStrRx = new RegExp('[?](.+)$'),
subdomainRx = new RegExp('((http[s]?:)?//)?(.+?)[.]' + window.location.host, 'i');
$.each(this.actions, function(name, action) {
if(name == 'poll') {
if(name == 'poll' || name == 'send') {
if(self.settings.pollType != 'comet')
action += (queryStrRx.test(action[1]) ? '&' : '?') + 'callback=?';