diff --git a/lualib/multicast.lua b/lualib/multicast.lua index d303976a..ea2617d4 100644 --- a/lualib/multicast.lua +++ b/lualib/multicast.lua @@ -20,6 +20,12 @@ function multicast.newchannel(conf) return channel end +function multicast.bind(channel, conf) + assert(multicastd, "Init first") + assert(not dispatch[channel]) + dispatch[channel] = default_conf(conf) +end + function multicast.publish(channel, ...) local conf = assert(dispatch[channel]) skynet.call(multicastd, "lua", "PUB", channel, c.pack(conf.pack(...))) diff --git a/test/testmulticast.lua b/test/testmulticast.lua index 55914016..127da25f 100644 --- a/test/testmulticast.lua +++ b/test/testmulticast.lua @@ -10,7 +10,7 @@ skynet.start(function() assert(cmd == "init") mc.subscribe(channel, { dispatch = function (channel, source, ...) - print(string.format("%s ===> %s (%d)",skynet.address(source), skynet.address(skynet.self()), channel), ...) + print(string.format("%s <=== %s (%d)",skynet.address(skynet.self()),skynet.address(source), channel), ...) end }) end) @@ -26,6 +26,7 @@ skynet.start(function() skynet.send(sub, "lua", "init", channel) end + print(skynet.address(skynet.self()), "===>", channel) mc.publish(channel, "Hello World") end)