我做了一工具,程序的工作流程是这样的:
这里的 process 操作简单描述下:先查找全局变量$depth_data
里捞出对应数据返回结束此次请求。如果捞出来是空的,就开启一个 websocket 连接订阅数据,其后保持这个连接,每当收到远端服务发来的数据(大概每秒 10 次),把数据存入$depth_data
。
我用的 websocket-client gem 是faye-websocket-ruby
,它官方介绍的用法需要使用 EM.run
对 Eventmachine、reactor 模式有点懵,谷歌了几天没能解决问题。
菜鸟一枚,或者有更好的实现方式,或者解法。折腾了好久,望各大神不吝赐教。
我做过的尝试:
websocket-client-simple
,但这个 gem 在连接后首次收到数据会慢上 5 秒。因为拿的是交易所数据,不能忍,这个做备选。