小编ink*_*min的帖子

Common Lisp中的WebSocket客户端与usocket库

我正在尝试升级协议,从HTTP 1.1切换到WebSockets.我试过用usocket.到目前为止我的代码如下(并作为GitHub要点提供).握手读取后,函数返回NILunexpected EOF错误.

;; Define parameter sock for usocket stream
;; echo.websocket.org is a site for testing websockets
(defparameter sock (usocket:socket-connect "echo.websocket.org" 80))

;; Output confirms WebSocket protocol handshake as this implemented in browsers 
(format (usocket:socket-stream sock) "~A~%~A~%~A~%~A~%~A~A~%~A~%~A~%~%" 
        "GET /?encoding=text HTTP/1.1"
        "Connection: Upgrade"
        "Host: echo.websocket.org"
        "Origin: http://www.websocket.org"
        "Sec-WebSocket-Key: " (generate-websocket-key)
        "Sec-WebSocket-Version: 13"
        "Upgrade: websocket")

;; Write output to stream
(force-output (usocket:socket-stream sock))

;; Returns NIL
(do ((line                                                             
      (read-line (usocket:socket-stream sock) nil)                        
      (read-line …
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp websocket usocket

3
推荐指数
1
解决办法
701
查看次数

标签 统计

common-lisp ×1

lisp ×1

usocket ×1

websocket ×1