首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua websockets for heka

Lua websockets for heka
EN

Stack Overflow用户
提问于 2016-01-04 11:01:26
回答 1查看 205关注 0票数 2

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

使用他们提供的copas示例:

代码语言:javascript
复制
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脚本已经成功执行。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-05 05:29:47

不要调用copas.loop(),因为它进入一个处理所有copas套接字交互的不定循环。您需要使用copas.step() (请参阅控制copas部分),并在适当的时候从heka代码中调用它(这个调用将在超时时返回false,并在处理某些事情时返回true )。在GUI应用程序中,可以从空闲处理程序调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34589634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档