feat: add SSE connect/disconnect public API
This commit is contained in:
@@ -100,5 +100,41 @@ Handles connection close and triggers reconnection."
|
||||
(run-with-timer noise-sse--reconnect-delay nil
|
||||
#'noise-sse-connect)))
|
||||
|
||||
;;;###autoload
|
||||
(defun noise-sse-connect ()
|
||||
"Connect to signal-cli SSE endpoint."
|
||||
(interactive)
|
||||
(noise-sse-disconnect)
|
||||
(let* ((url (noise-sse--build-url))
|
||||
(parsed (url-generic-parse-url url))
|
||||
(host (url-host parsed))
|
||||
(port (or (url-port parsed) 80))
|
||||
(proc (make-network-process
|
||||
:name "noise-sse"
|
||||
:host host
|
||||
:service port
|
||||
:filter #'noise-sse--filter
|
||||
:sentinel #'noise-sse--sentinel)))
|
||||
(setq noise-sse--process proc)
|
||||
(noise-sse--reset-reconnect-delay)
|
||||
(process-send-string proc
|
||||
(format "GET %s HTTP/1.1\r\nHost: %s\r\nAccept: text/event-stream\r\n\r\n"
|
||||
(url-filename parsed)
|
||||
host))
|
||||
(message "Noise: SSE connected to %s" url)))
|
||||
|
||||
;;;###autoload
|
||||
(defun noise-sse-disconnect ()
|
||||
"Disconnect from signal-cli SSE endpoint."
|
||||
(interactive)
|
||||
(when noise-sse--process
|
||||
(delete-process noise-sse--process)
|
||||
(setq noise-sse--process nil))
|
||||
(when noise-sse--reconnect-timer
|
||||
(cancel-timer noise-sse--reconnect-timer)
|
||||
(setq noise-sse--reconnect-timer nil))
|
||||
(setq noise-sse--buffer "")
|
||||
(message "Noise: SSE disconnected"))
|
||||
|
||||
(provide 'noise-sse)
|
||||
;;; noise-sse.el ends here
|
||||
|
||||
Reference in New Issue
Block a user