本文整理汇总了Python中zeroconf.Zeroconf.registerService方法的典型用法代码示例。如果您正苦于以下问题:Python Zeroconf.registerService方法的具体用法?Python Zeroconf.registerService怎么用?Python Zeroconf.registerService使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zeroconf.Zeroconf
的用法示例。
在下文中一共展示了Zeroconf.registerService方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PublishService
# 需要导入模块: from zeroconf import Zeroconf [as 别名]
# 或者: from zeroconf.Zeroconf import registerService [as 别名]
class PublishService(Service):
"""Service implementing zeroconf publishing service for chains master servers"""
def onInit(self):
log.info('Zeroconf publish init')
self.ip_addr = self._get_ip()
self.hostname = socket.gethostname()
self.services = []
self.desc = {'Description': 'Chains Home Automation service on rabbitmq'}
self.amqp_info = ServiceInfo("_amqp._tcp.local.",
"Chains Master AMQP %s._amqp._tcp.local." % self.hostname,
socket.inet_aton(self.ip_addr), 5672, 0, 0,
self.desc, "%s.local." % self.hostname)
self.service.append(self.amqp_info)
self.zeroconf = Zeroconf()
def onStart(self):
log.info('Starting zeroconf publishing service')
for info in self.services:
self.zeroconf.registerService(info)
def _get_ip(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('google.com', 80))
ip = sock.getsockname()[0]
sock.close()
return ip
示例2: __init__
# 需要导入模块: from zeroconf import Zeroconf [as 别名]
# 或者: from zeroconf.Zeroconf import registerService [as 别名]
class ServerPublisher:
def __init__(self):
self.zero_conf = Zeroconf()
def publish(self, host, port):
log.debug('publishing server at %s:%s' % (host, port))
hostname = gethostname()
service_info = ServiceInfo("_checkers._tcp.local.", "%s._checkers._tcp.local." % hostname,
inet_aton(host), port, 0, 0, {}, server=hostname + '.local')
self.zero_conf.registerService(service_info)
def shutdown(self):
log.debug('shutting down server publisher')
self.zero_conf.unregisterAllServices()
self.zero_conf.close()
示例3: Broadcast
# 需要导入模块: from zeroconf import Zeroconf [as 别名]
# 或者: from zeroconf.Zeroconf import registerService [as 别名]
class Broadcast(object):
"""
A zeroconf listener that broadcasts the address for the printing service
"""
def __init__(self, address, port):
self.address = address
self.port = port
self.properties = {
'nickname': u'Printer Nickname',
'service': u'Tryton POS'
}
self.service = Zeroconf()
self._service_info = None
@property
def service_info(self):
if self._service_info is None:
self._service_info = ServiceInfo(
"_trytonpos._tcp.local.",
"%s._trytonpos._tcp.local." % socket.gethostname(),
socket.inet_aton(self.address), self.port, 0, 0,
self.properties
)
return self._service_info
def register_zeroconf(self):
"""
Register a new service for printing
"""
print("Registration of service @ %s:%s" % (self.address, self.port))
self.service.registerService(self.service_info)
def unregister_zeroconf(self):
"""
Unregister the given service
"""
print("Unregistering...")
self.service.unregisterService(self.service_info)
self.service.close()