我已经在Rack上使用Faye websocket库成功实现了一个服务器,并使用了puma webserver,如here所述。
在我的应用程序中,客户端首先将要处理的音频数据发送到服务器,然后迭代地询问服务器数据是否已经完成处理。一旦服务器获取数据,它就将其存储到队列中进行处理。每次应用程序询问服务器时,服务器都会检查队列并返回null或返回处理结果。
我想重新实现这一点,以便服务器在完成处理时异步地向客户端发送消息,而客户端不必一直迭代地询问。
我已经看到了可能的解决方案,比如睡眠和迭代检查状态,直到它准备好了,但我担心这会阻塞服务器并使其无法扩展。另一种选择是使用Faye websockets的ping / pong功能,但我可以看到这与我现在完全一样。
关于如何实施它的任何其他想法?