freenode/#lisp - IRC Chatlog
Search
0:43:57
Oladon
I'm trying to get Hunchentoot working with server-sent events (text/event-stream). It seems like the socket is getting closed when I run send-headers (L6); the browser tries to reconnect a few seconds later, but never receives any events. https://pastebin.com/MvqsUSgE I suspect I'm doing something silly... anyone see what I'm doing wrong, or have any ideas?
0:47:52
pjb
The message saying that the event is sent is wrong. The event has been formatted and written into some buffer. It has not been sent.
0:48:50
Oladon
How come it's closing the socket though? Shouldn't it just leave it open indefinitely?
0:53:24
pjb
Well, there may indeed be even more complications, if it's a gray stream managed by the HTTP protocol, such as a chunked-io-stream.
0:54:53
Oladon
In theory the client should leave it open when it receives text/event-stream as the content-type...
1:00:57
Oladon
Hmm, I think the server is the one killing it... curl -N should stay connected otherwise?
4:35:18
Oladon
So I've made some progress, thanks to you guys' earlier assistance: https://plaster.tymoon.eu/view/1672#1672 -- it's now correctly sending the events, but it's still closing the socket when the function finishes. And I can't seem to figure out why :(
4:47:08
Oladon
loke`: Any chance you're around? Seems that you managed to do something with Hunchentoot's detach-socket way back in 2014...
5:18:06
alandipert
has anyone built a a single-page web application with JSCL, or is anyone otherwise aware of one?
6:02:05
no-defun-allowed
ACTION notes that matrix-irc bridge appears to drop all but one "Good morning everyone!" now. :<
7:32:37
no-defun-allowed
Given you can pass conditions around like any other value and signal them, no.
7:40:27
lieven
hmmm restarts are also objects like any other, albeit with dynamic extent. there's some scope for very obfuscated code there.
9:16:36
pjb
Josh_2: the exact condition signaled by most CL functions is not specified. Since it's not specified how they're implemented, it's not even know if/what condition could be signaled in addition to those specified. It's almost never documented by library functions. So reading the source will not be that useful.
9:17:11
pjb
Josh_2: furthermore, some implementations are written in C or other languages, so it's not even easy to consider analysing the CL sources.
9:18:49
pjb
Josh_2: for example, any function that will ultimately allocate memory, could signal a out-of-memory condition. Any function that uses arithmetic operators could signal a divide-by-zero or other arithmetic-error condition.
9:45:23
pjb
Josh_2: You could write an implementation that would compute the full type of functions including the set of condition it may signal.
10:08:42
lieven
in an implementation where conditions are regular objects and that has MOP, you can define new conditions at run time