mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
fix error reconnect when using long polling
This commit is contained in:
parent
82f749e21f
commit
a197942d66
2 changed files with 42 additions and 26 deletions
|
|
@ -276,6 +276,7 @@ the default answer. (Private)"
|
||||||
(let ((ws (websocket-driver:make-server env)))
|
(let ((ws (websocket-driver:make-server env)))
|
||||||
(websocket-driver:on :open ws
|
(websocket-driver:on :open ws
|
||||||
(lambda ()
|
(lambda ()
|
||||||
|
(handler-case
|
||||||
(let* ((query (getf env :query-string))
|
(let* ((query (getf env :query-string))
|
||||||
(items (when query
|
(items (when query
|
||||||
(quri:url-decode-params query)))
|
(quri:url-decode-params query)))
|
||||||
|
|
@ -284,20 +285,31 @@ the default answer. (Private)"
|
||||||
:test #'equalp)))))
|
:test #'equalp)))))
|
||||||
(when (typep id 'string)
|
(when (typep id 'string)
|
||||||
(setf id (parse-integer id :junk-allowed t)))
|
(setf id (parse-integer id :junk-allowed t)))
|
||||||
(handle-new-connection ws id))))
|
(handle-new-connection ws id))
|
||||||
|
(t (c)
|
||||||
|
(print env)
|
||||||
|
(format t "Condition caught in clog-server :open - ~A.~&" c)
|
||||||
|
(values 0 c)))))
|
||||||
(websocket-driver:on :message ws
|
(websocket-driver:on :message ws
|
||||||
(lambda (msg) (handle-message ws msg)))
|
(lambda (msg)
|
||||||
|
(handler-case
|
||||||
|
(handle-message ws msg)
|
||||||
|
(t (c)
|
||||||
|
(format t "Condition caught in clog-server :message - ~A.~&" c)
|
||||||
|
(values 0 c)))))
|
||||||
(websocket-driver:on :close ws
|
(websocket-driver:on :close ws
|
||||||
(lambda (&key code reason)
|
(lambda (&key code reason)
|
||||||
(declare (ignore code reason))
|
(declare (ignore code reason))
|
||||||
(handle-close-connection ws)))
|
(handler-case
|
||||||
|
(handle-close-connection ws)
|
||||||
|
(t (c)
|
||||||
|
(format t "Condition caught in clog-server :message - ~A.~&" c)
|
||||||
|
(values 0 c)))))
|
||||||
(lambda (responder)
|
(lambda (responder)
|
||||||
(declare (ignore responder))
|
(declare (ignore responder))
|
||||||
(websocket-driver:start-connection ws)))
|
(websocket-driver:start-connection ws)))
|
||||||
(t (c)
|
(t (c)
|
||||||
(format t "Condition caught in clog-server - ~A.~&" c)
|
(format t "Condition caught in clog-server start-up - ~A.~&" c)
|
||||||
(values 0 c))))
|
(values 0 c))))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;
|
||||||
|
|
@ -656,7 +668,7 @@ the browser contents in case of connection loss."
|
||||||
"
|
"
|
||||||
/*compiled version*/
|
/*compiled version*/
|
||||||
var ws=null;
|
var ws=null;
|
||||||
var adr;
|
var adr; var adrc;
|
||||||
var clog={};
|
var clog={};
|
||||||
var pingerid;
|
var pingerid;
|
||||||
var s = document.location.search;
|
var s = document.location.search;
|
||||||
|
|
@ -745,14 +757,16 @@ function Open_ws() {
|
||||||
if (location.port != '') { adr = adr + ':' + location.port; }
|
if (location.port != '') { adr = adr + ':' + location.port; }
|
||||||
adr = adr + '/clog';
|
adr = adr + '/clog';
|
||||||
|
|
||||||
if (clog['connection_id']) { adr = adr + '?r=' + clog['connection_id'] }
|
if (clog['connection_id']) {
|
||||||
|
adrc = adr + '?r=' + clog['connection_id'];
|
||||||
|
} else { adrc = adr }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log ('connecting to ' + adr);
|
console.log ('connecting to ' + adrc);
|
||||||
ws = new WebSocket (adr);
|
ws = new WebSocket (adrc);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log ('trying again, connecting to ' + adr);
|
console.log ('trying again, connecting to ' + adrc);
|
||||||
ws = new WebSocket (adr);
|
ws = new WebSocket (adrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ws != null) {
|
if (ws != null) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/*static version*/
|
/*static version*/
|
||||||
var ws=null;
|
var ws=null;
|
||||||
var adr;
|
var adr; var adrc;
|
||||||
var clog={};
|
var clog={};
|
||||||
var pingerid;
|
var pingerid;
|
||||||
var s = document.location.search;
|
var s = document.location.search;
|
||||||
|
|
@ -89,14 +89,16 @@ function Open_ws() {
|
||||||
if (location.port != '') { adr = adr + ':' + location.port; }
|
if (location.port != '') { adr = adr + ':' + location.port; }
|
||||||
adr = adr + '/clog';
|
adr = adr + '/clog';
|
||||||
|
|
||||||
if (clog['connection_id']) { adr = adr + '?r=' + clog['connection_id'] }
|
if (clog['connection_id']) {
|
||||||
|
adrc = adr + '?r=' + clog['connection_id'];
|
||||||
|
} else { adrc = adr }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log ('connecting to ' + adr);
|
console.log ('connecting to ' + adrc);
|
||||||
ws = new WebSocket (adr);
|
ws = new WebSocket (adrc);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log ('trying again, connecting to ' + adr);
|
console.log ('trying again, connecting to ' + adrc);
|
||||||
ws = new WebSocket (adr);
|
ws = new WebSocket (adrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ws != null) {
|
if (ws != null) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue