Lua e Javascript

27 views
Skip to first unread message

Leonardo Nascimento

unread,
Aug 8, 2011, 11:11:33 AM8/8/11
to lua...@googlegroups.com
Olá,

Alguém chama funções de arquivos .lua com o javascript(jquery, ajax, ...)?
algo tipo:

$.ajax({
type: "POST",
url: "/arquivo.lua/nomedafunção",
...
...
...});

--
Leonardo Nascimento

Italo Maia

unread,
Aug 8, 2011, 12:14:17 PM8/8/11
to lua...@googlegroups.com
Acredito que no caso vc teria que ter um servidor de aplicação rodando com lua que escutaria esta requisição e responderia. 




--
"A arrogância é a arma dos fracos."

===========================
Italo Moreira Campelo Maia
Bacharel em Ciência da Computação - UECE
Desenvolvedor WEB e Desktop (Java, Python, Lua)
Coordenador do Pug-CE
-----------------------------------------------------
http://www.italomaia.com/
http://twitter.com/italomaia/
http://eusouolobomau.blogspot.com/
-----------------------------------------------------
Turtle Linux  9.10 - http://tiny.cc/blogturtle910
Turtle Linux 10.10 - http://bit.ly/cEw4ET
===========================

Italo Maia

unread,
Aug 8, 2011, 12:14:33 PM8/8/11
to lua...@googlegroups.com
Com um web service por baixo, of course.

Leonardo Nascimento

unread,
Aug 8, 2011, 12:44:29 PM8/8/11
to lua...@googlegroups.com
O webservice em Lua?

2011/8/8 Italo Maia <italo...@gmail.com>



--
Leonardo Nascimento

Italo Maia

unread,
Aug 9, 2011, 1:11:38 PM8/9/11
to lua...@googlegroups.com
Yeap.

2011/8/8 Leonardo Nascimento <leoca...@gmail.com>

Leonardo Nascimento

unread,
Aug 12, 2011, 7:14:28 PM8/12/11
to lua...@googlegroups.com
Oi Italo,


Consegui rodar um exemplo com IIS, Lua, Javascript e HTML.

Veja se consegue me ajudar com algumas dúvidas que surgiram.
Mas primeiro veja os arquivos que comecei a implementar:

Index.Lua
#!/usr/bin/env wsapi.cgi

module(..., package.seeall)

function run(wsapi_env)
  local headers = { ["Content-type"] = "text/html" }

  local function HelloWorld()
    coroutine.yield("Hello World!")
  end

  return 200, headers, coroutine.wrap(HelloWorld)
end

Index.js
function clickMeSuccess(helloWorld) {
    alert(helloWorld.toString());
}

function clickMeError() {
}

function clickMe() {
    $.ajax({
    type: "POST",
    url: "/Index.lua/HelloWorld",
    contentType: "application/json",
    success: clickMeSuccess,
    error: clickMeError
    });
}

Index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>
    <title>Hello World!</title>
    <script src="http://code.jquery.com/jquery-1.6.2.js" type="text/javascript"></script>
    <script src="Index.js" type="text/jscript"></script>
</head>
<body>
<input id="clickMeButton" type="button" value="Click Me!" onclick="clickMe();" />
</body>
</html>

Com esses arquivos consigo fazer popar um alerta com a string contida na função HelloWorld() ao clicar no botão.
O que achei estranho, é que na chamada do jquery, onde eu indico a url, posso colocar ou não o nome da função que continua funcionando.
Como eu faria para colocar mais de uma função no arquivo .lua e chama-las pelo javascript?
E se eu quisesse passar argumentos para as minhas funções no arquivo .lua?

Obrigado.

Leonardo Nascimento

Italo Maia

unread,
Aug 14, 2011, 2:03:38 PM8/14/11
to lua...@googlegroups.com
Entendo. Você quer controlar o javascript de alguém acessando o servidor através de chamadas interativas. Algo assim não é? Olha, sugiro duas coisas: a primeira é que você não utilize lua caso não tenha uma boa quantidade de tempo a investir, pois se trata de algo difícil de se fazer sem robustez. Javascript com node.js deve lhe servir melhor nesta empreitada. A segunda coisa é que você dê uma olhada em websockets você deve precisar para fazer isto. 

No mais, infelizmente não tenho como te fornecer um bom how-to pois não é bem a minha ossada no momento. = /
Reply all
Reply to author
Forward
0 new messages