EM :: WebSocket.run以及INotify文件监视

时间:2014-10-24 02:02:03

标签: ruby eventmachine

这是我目前的代码:

#!/usr/bin/ruby
require 'em-websocket'
$cs = []
EM.run do
    EM::WebSocket.run(:host => "::", :port => 8085) do |ws|
        ws.onopen do |handshake|
            $cs << ws
        end
        ws.onclose do
            $cs.delete ws
        end
    end
end

我想查看rb-inotify的文件,并在文件更改时向所有连接的客户端($cs.each {|c| c.send "File changed"})发送消息。问题是,我不了解EventMachine,我似乎找不到一个好的教程。

因此,如果有人可以向我解释在哪里放置rb-inotify相关代码,我会非常感激。

1 个答案:

答案 0 :(得分:0)

当然!我发布问题后,我就明白了!

#!/usr/bin/ruby
require 'em-websocket'
$cs = []
module Handler
    def file_modified
        $cs.each {|c| c.send "File was modified!" }
    end
end
EM.run do
    EM.watch_file("/tmp/foo", Handler)
    EM::WebSocket.run(:host => "::", :port => 8085) do |ws|
        ws.onopen do |handshake|
            $cs << ws
        end
        ws.onclose do
            $cs.delete ws
        end
    end
end