Hea的Lua websockets

时间:2016-01-04 11:01:26

标签: lua websocket hekad

我正在使用lua-websockets https://github.com/lipp/lua-websockets来尝试运行Web套接字服务器。

使用他们提供的copas示例:

local copas = require'copas'

local server = require'websocket'.server.copas.listen
{

  port = 8080,

  protocols = {
    echo = function(ws)
      while true do
        local message = ws:receive()
        if message then
           ws:send(message)
        else
           ws:close()
           return
        end
      end
    end
  }
}

copas.loop()

这可以工作并开始侦听端口8080,我能够连接并获得回应响应。

问题在于我尝试将其与heka集成。我启动heka并启动websocket服务器但挂起在加载插件。当它试图“加载”插件时,它会执行lua脚本。

现在我的问题是,如何运行websocket服务器并向heka发送“成功”以让它继续启动。这只是:如果websocket正在监听8080返回heka并说lua脚本已成功执行。

提前致谢!

1 个答案:

答案 0 :(得分:0)

当它进入一个处理所有copas套接字交互的无限循环时,不要调用copas.loop()。您需要改为使用copas.step()(请参阅controlling copas部分)并在适当的时间从您的heka代码中调用它(此调用将在超时时返回false并在true时返回处理某事)。在GUI应用程序中,可以从IDLE处理程序调用它。