Open keitarobr opened 7 years ago
Olá, crie uma função main() e coloque todo o seu código lua dentro de tal função (inclusive os require). Em seguida, no final do arquivo lua inclua o código abaixo:
--Chama a função main em modo protegido, permitindo tratar erros gerados
local ok, res = pcall(main)
if not ok then
print("\n\nError: "..res, "\n\n")
return -1
end
Veja se é mostrada alguma mensagem de erro e informe aqui. Mais detalhes sobre uso da função pcall podem ser obtidos aqui.
Olá Manoel,
fiz conforme sugerido:
... function main() http.request(host, callbackFirst, 'POST', params) end
--Chama a função main em modo protegido, permitindo tratar erros gerados local ok, res = pcall(main)
if not ok then print("\n\nError: "..res, "\n\n") return -1 end ....
Porém ele nunca "termina" (nclua main.lua), ficando a saída parada até que eu force a finalização (CTRL+C).
Depurando (mensagens), ele fica aguardando o fim da requisição porém não detecta que o servidor já parou de mandar dados.
Alguma idéia?
Você precisa colocar todo o código dentro do main, inclusive os require. Como você está rodando o script? Embutido em um documento NCL e executando o comando abaixo no terminal?
ginga --ncl documento.ncl
Já se certificou que a VM está tendo acesso à Internet?
Qual a URL da página que está tentando acessar? Pode usar o comando curl
no terminal para fazer uma requisição a tal página de dentro da VM e ver se está tudo OK.
Pode disponibilizar o código para eu verificar?
Eu estou tendo o mesmo problema com o load balancer. Quando é load balance, ele não envia a requisição, por isso nunca chega o callback. Quando é uma máquina normal, ele envia corretamente pro IP.
@JulienLeal o módulo não suporta redirect. Se realmente precisar disso, descreva melhor seu cenário, o que está tentando fazer e verei a possibilidade de implementar esta feature.
Olá,
Eu estava tendo o mesmo problema, então alterei a linha 170 de:
local response = tcp.receive("*a")
para
local response = tcp.receive()
e me parece que resolveu.
Dependendo do tamanho do response isso não vai dar certo, mas no meu caso não tive problemas
Olá,
estou tentar executar um script que ua o NCLuaHTTP, porém ao fazer uma requisição, ele trava após receber a última parte da requisição. A rotina de callback nunca é chamada.
Usei seu exemplo de teste e o resultado é o mesmo.
Estou usando o NCLua e o Ginga, compilados de suas últimas versões, em um Ubuntu.
Alguma idéia do que possa estar acontecendo?