From 7b76bcd039d42fbbd294f24bbdca87cb7bcca9d0 Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Sun, 4 Sep 2022 15:42:59 +0800 Subject: [PATCH] cluster.open(0) returns addr, port --- examples/cluster1.lua | 4 ++-- service/clusterd.lua | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/examples/cluster1.lua b/examples/cluster1.lua index 921453d8..10b2e2f2 100644 --- a/examples/cluster1.lua +++ b/examples/cluster1.lua @@ -19,8 +19,8 @@ skynet.start(function() print(skynet.call(sdb, "lua", "SET", "b", "foobar2")) print(skynet.call(sdb, "lua", "GET", "a")) print(skynet.call(sdb, "lua", "GET", "b")) - skynet.error("Open db", cluster.open "db") - skynet.error("Open db2", cluster.open "db2") + cluster.open "db" + cluster.open "db2" -- unique snax service snax.uniqueservice "pingserver" end) diff --git a/service/clusterd.lua b/service/clusterd.lua index 440cb865..20faedfa 100644 --- a/service/clusterd.lua +++ b/service/clusterd.lua @@ -146,10 +146,15 @@ function command.listen(source, addr, port) local gate = skynet.newservice("gate") if port == nil then local address = assert(node_address[addr], addr .. " is down") - addr, port = string.match(address, "([^:]+):(.*)$") + addr, port = string.match(address, "(.+):([^:]+)$") + port = tonumber(port) + assert(port ~= 0) + skynet.call(gate, "lua", "open", { address = addr, port = port }) + skynet.ret(skynet.pack(addr, port)) + else + local realaddr, realport = skynet.call(gate, "lua", "open", { address = addr, port = port }) + skynet.ret(skynet.pack(realaddr, realport)) end - local addr, port = skynet.call(gate, "lua", "open", { address = addr, port = port }) - skynet.ret(skynet.pack(addr, port)) end function command.sender(source, node)