如何在 Julia 中编写 WebSocket 客户端?
Posted
技术标签:
【中文标题】如何在 Julia 中编写 WebSocket 客户端?【英文标题】:How can I write a WebSocket client in Julia? 【发布时间】:2016-09-06 00:28:42 【问题描述】:我想通过 Julia 连接到 WebSocket。我试图从wss://echo.websocket.org
获得回声响应,但它似乎没有像我预期的那样响应。有趣的是,它似乎确实可以连接,而无效地址则不会。
julia> client = connect("echo.websocket.org", 443)
TCPSocket(open, 0 bytes waiting)
julia> println(client, "Hello, world!")
julia> readline(client)
""
有可能做到这一点吗?
【问题讨论】:
网络套接字有一个特定的handshake and protocol;它不仅仅是一个回显 HTTP 服务器。这就是你的println
不起作用的原因。
【参考方案1】:
现在有一个特定的库https://github.com/JuliaWeb/WebSockets.jl。示例/chat.jl 和示例/chat-client.html 中提供了如何使用它的示例。
【讨论】:
【参考方案2】:Web 套接字客户端无法通过打开套接字并直接对其进行读写来实现。有一个相当复杂的协议需要实现。此外,websocket 客户端旨在接收推送请求,因此需要某种方式来异步处理它们。
在 Julia 中实现了一个 websocket 客户端库:https://github.com/dandeliondeathray/DandelionWebSockets.jl
要安装它,请执行:Pkg.clone("https://github.com/dandeliondeathray/DandelionWebSockets.jl")
使用它需要为网络事件定义事件处理程序。请参阅此处以获取使用 echo 的示例:https://github.com/dandeliondeathray/DandelionWebSockets.jl/blob/b23307f360ef0b62e3064c6b1484599eb660f63f/examples/echo.jl
【讨论】:
以上是关于如何在 Julia 中编写 WebSocket 客户端?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Julia 中编写和读取包含日期时间列的 DataFrame
处理多种类型和数组时如何编写“好”的 Julia 代码(多重分派)
全新EasyRTC平台功能开发:如何基于websocket实现视频客服通信