在我们的应用程序中,我们正在考虑启用协作在线编辑。它是一个图形应用程序,严重依赖 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
人们对这种方法有何看法?这合理吗?还有其他建议吗?谢谢!