+
+(define (websocket-server-send websocket-server message client-id data)
+ (cond ((hash-ref (.ws-clients websocket-server) client-id) =>
+ (lambda (client)
+ (write-frame
+ (cond ((string? data)
+ (make-text-frame data))
+ ((bytevector? data)
+ (make-binary-frame data)))
+ client)
+ ;; ok is like success, amirite
+ (<-reply message 'ok)))
+ (else
+ ;; No such client with that id.
+ ;; Either it closed, or it was never there.
+ (<-reply message 'client-gone))))