rabbibotton / clog

CLOG - The Common Lisp Omnificent GUI
Other
1.49k stars 102 forks source link

Support woo server. (Currently no problem found in CLOG. This issue opened for external reference) #201

Open shakatoday opened 1 year ago

shakatoday commented 1 year ago

Woo got much better performance than Hunchentoot, so I think CLOG should support Woo server.

Current situation is that the CLOG server can't send messages to clients if applying Woo server. (Clients can send to their servers, though)

CL-USER> (clog:run-tutorial 6) ; file edited to call with :server :woo

 ---- The tutorial src is located at: /Users/danielviolin/projects/side/clog/./tutorial/06-tutorial.lisp
Woo server is started.
Listening on 0.0.0.0:8080.
HTTP listening on    : 0.0.0.0:8080
HTML root            : /Users/danielviolin/projects/side/clog/static-files/
Long poll first      : no
Boot function added  : no
Boot html source use : compiled version, when no file
Boot js source use   : compiled version
Boot file for path / : /boot.html
NIL
NIL
0
New connection id - 0b05eb96b2772f7359a3a94651a6be12 - #<SERVER {7017AC9B23}>
Start new window handler on connection-id - 0b05eb96b2772f7359a3a94651a6be12
Connection id 0b05eb96b2772f7359a3a94651a6be12 has closed. #<SERVER {7017AC9B23}>
Attempt to set event on non-existant connection.

After investigation, it seems that Woo hasn't completely supported multi-threaded websocket connections. Ref: https://github.com/fukamachi/websocket-driver/pull/35

My thought is we probably don't have to modify anything in CLOG.

There's a branch in Woo solving this problem. https://github.com/fukamachi/woo/pull/81 It works on clog tutorial 6 but fails on my project ackfock.com .

I opened this issue anyway in order to mention it in https://github.com/fukamachi/woo/pull/81 . I hope this can increase the priority of Woo's progress in Common Lisp community.

ska80 commented 1 year ago

Does woo support other CL implementations well? It looks like it is still in beta quality, and it is optimized only for SBCL. Hunchentoot is very portable, and I can successfully run CLOG apps using LispWorks.

rabbibotton commented 1 year ago

Woo would never replace, it would just be an option.