Type Library Revision 2017.3060 Keywords ZeroConf, network Platforms Android, iOS, macOS, Windows, tvOS
This plugin allows you to discover and publish services over a local network. It allows
Service discovery is available by default on all platforms except Windows. To use this plugin on Windows, Bonjour version 3 or higher must be installed.
You can use "Bonjour Browser" type software to verify if service discovery is functioning properly.
local zeroconf = require( "plugin.zeroconf" )
Initialization
Service Publishing
Service Discovery
To use this plugin, add an entry into the plugins table of build.settings. When added, the build server will integrate the plugin during the build phase.
settings =
{
plugins =
{
["plugin.zeroconf"] =
{
publisherId = "com.coronalabs"
},
},
}
-- Publishes a service of type '_corona_test._tcp' and then starts discovery for the service
-- Require the plugin
local zeroconf = require( "plugin.zeroconf" )
-- Listener to be called for ZeroConf events
local function zeroconfListener( event )
-- Service has been found
if ( event.phase == "found" and not event.isError ) then
print( "SERVICE FOUND" )
print( "-------------" )
if event.serviceName then
print( "Service name: " .. event.serviceName )
end
if event.port then
print( "Port: " .. tostring(event.port) )
end
if ( event.addresses and #event.addresses > 0 ) then
print( "Service provider addresses:" )
for i = 1,#event.addresses do
print( " " .. event.addresses[i] )
end
end
-- Service has been lost!
elseif event.phase == "lost" then
print( "SERVICE LOST!" )
print( "-------------" )
if event.serviceName then
print( "Service name: " .. event.serviceName )
end
end
end
-- Initialize listener
zeroconf.init( zeroconfListener )
-- Generate a service name
local serviceName = system.getInfo("name") .. " (" .. system.getInfo("platformName") .. ")"
-- Publish a service (make it discoverable over the network)
local service = zeroconf.publish( { port=2929, name=serviceName, type="_corona_test._tcp" } )
-- Start looking for published services
local browser = zeroconf.browse( { type="_corona_test._tcp" } )