1

在我们的应用程序中,我们正在考虑启用协作在线编辑。它是一个图形应用程序,严重依赖 JavaScript 来创建类似思维导图的结构。

第一个明显的候选者是使用 websockets。

用户来到该站点创建这些地图。我看过em-websocket似乎启动了一个自己的进程,但是

 EventMachine.run {

         EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 9876) do |ws|

那里似乎没有太多上下文信息;人们可能同时在编辑不同的地图!所以我目前的猜测是

  • 对于正在编辑的每个地图,都会在不同的端口上启动一个新的 WebSocket 服务器
  • 因为这需要控制 WebSocket 生命周期,所以我想Thread为每个这样的WebSocket服务器生成一个:

    #on map create/edit: Thread.new do EventMachine.run {

             EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 9876) do |ws|
           ....
       end
    

人们对这种方法有何看法?这合理吗?还有其他建议吗?谢谢!

4

0 回答 0