如何连接到在LUA中返回JSON的Web服务

时间:2018-03-26 09:09:10

标签: mysql lua mysql-proxy

我是LUA的初学者。我在lua文件中编写了以下代码,mysql代理与它一起运行。

function read_query(packet)
    if string.byte(packet) == proxy.COM_QUERY then
        local command = string.lower(packet)
        if string.find(command, "select") ~= nil and string.find(string.lower(packet), "from") ~= nil then
            local socket = require('socket')
            local conn, err = socket.connect('localhost', 5050)
            print(conn, err)
            proxy.response.type = proxy.MYSQLD_PACKET_OK
            //proxy.response.resultset get json from web service (url)
            proxy.response.resultset = {
                fields = {
                    { type = proxy.MYSQL_TYPE_INT, name = "id", },
                },
                rows = {
                    { 9001 }
                }
            }
            return proxy.PROXY_SEND_RESULT
        end
    end
end

我想连接到端口5050上的Web服务,该服务返回JSON文件并保存它在proxy.response.resultset中返回的json。 另一个问题,我该如何添加套接字模块。我粘贴文件如下图

socket module files

但是给出错误:找不到/socket/core.lua。

1 个答案:

答案 0 :(得分:0)

  

local socket = require('socket')

您使用的是luasocket,它是lua(socket.lua)和二进制(socket/core.so)文件的混合体。您需要设置(如果它尚未设置)指向.so文件;这样的事情可能有用:package.cpath=package.cpath..';./?.so'