mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-25 12:43:09 +00:00
bugfix : connection
This commit is contained in:
@@ -9,7 +9,7 @@ skynet.dispatch(function(msg, sz , session, address)
|
||||
-- init notice
|
||||
local reply = instance[address]
|
||||
if reply then
|
||||
skynet.send(reply[2] , reply[1], address)
|
||||
skynet.send(reply[2] , reply[1], skynet.address(address))
|
||||
instance[address] = nil
|
||||
end
|
||||
else
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
local skynet = require "skynet"
|
||||
local socket = require "socket"
|
||||
local int64 = require "int64"
|
||||
local string = string
|
||||
local table = table
|
||||
local tonumber = tonumber
|
||||
@@ -10,6 +11,12 @@ local redis_server, redis_db = ...
|
||||
local function compose_message(msg)
|
||||
local lines = { "*" .. #msg }
|
||||
for _,v in ipairs(msg) do
|
||||
local t = type(v)
|
||||
if t == "number" then
|
||||
v = tostring(v)
|
||||
elseif t == "userdata" then
|
||||
v = int64.tostring(int64.new(v),10)
|
||||
end
|
||||
table.insert(lines,"$"..#v)
|
||||
table.insert(lines,v)
|
||||
end
|
||||
@@ -101,6 +108,7 @@ redcmd[45] = function(data) -- '-'
|
||||
end
|
||||
|
||||
redcmd[58] = function(data) -- ':'
|
||||
-- todo: return string later
|
||||
response(true, tonumber(data))
|
||||
end
|
||||
|
||||
@@ -117,7 +125,6 @@ end
|
||||
|
||||
local function init()
|
||||
while socket.connect(redis_server) do
|
||||
print("Connect failed : "..redis_server)
|
||||
skynet.sleep(1000)
|
||||
end
|
||||
if redis_db then
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
local skynet = require "skynet"
|
||||
local log = require "log"
|
||||
local config = require "config"
|
||||
|
||||
local name = {
|
||||
main = "127.0.0.1:6379",
|
||||
}
|
||||
|
||||
local redis_conf = skynet.getenv "redis"
|
||||
local name = config (redis_conf)
|
||||
local connection = {}
|
||||
|
||||
skynet.dispatch(function(msg, sz , session, from)
|
||||
local dbname = skynet.tostring(msg,sz)
|
||||
local dbname = skynet.unpack(msg,sz)
|
||||
if connection[dbname] then
|
||||
skynet.ret(connection[dbname])
|
||||
skynet.ret(skynet.pack(connection[dbname]))
|
||||
return
|
||||
end
|
||||
if name[dbname] == nil then
|
||||
log.Error("Invalid db name : "..dbname)
|
||||
skynet.ret("")
|
||||
skynet.ret(skynet.pack(nil))
|
||||
return
|
||||
end
|
||||
|
||||
local redis_cli = skynet.launch("snlua", "redis-cli", name[dbname])
|
||||
connection[dbname] = redis_cli
|
||||
skynet.ret(redis_cli)
|
||||
skynet.ret(skynet.pack(redis_cli))
|
||||
end)
|
||||
|
||||
skynet.register ".redis-manager"
|
||||
|
||||
Reference in New Issue
Block a user