Type Library Revision Release 2024.3703 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" } )