本文整理汇总了Python中twisted.application.internet.StreamServerEndpointService._raiseSynchronously方法的典型用法代码示例。如果您正苦于以下问题:Python StreamServerEndpointService._raiseSynchronously方法的具体用法?Python StreamServerEndpointService._raiseSynchronously怎么用?Python StreamServerEndpointService._raiseSynchronously使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类twisted.application.internet.StreamServerEndpointService
的用法示例。
在下文中一共展示了StreamServerEndpointService._raiseSynchronously方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: service
# 需要导入模块: from twisted.application.internet import StreamServerEndpointService [as 别名]
# 或者: from twisted.application.internet.StreamServerEndpointService import _raiseSynchronously [as 别名]
def service(description, factory, reactor=None):
"""
Return the service corresponding to a description.
@param description: The description of the listening port, in the syntax
described by L{twisted.internet.endpoints.serverFromString}.
@type description: C{str}
@param factory: The protocol factory which will build protocols for
connections to this service.
@type factory: L{twisted.internet.interfaces.IProtocolFactory}
@rtype: C{twisted.application.service.IService}
@return: the service corresponding to a description of a reliable stream
server.
@see: L{twisted.internet.endpoints.serverFromString}
"""
if reactor is None:
from twisted.internet import reactor
svc = StreamServerEndpointService(
endpoints.serverFromString(reactor, description), factory)
svc._raiseSynchronously = True
return svc
示例2: makeBroadcasterService
# 需要导入模块: from twisted.application.internet import StreamServerEndpointService [as 别名]
# 或者: from twisted.application.internet.StreamServerEndpointService import _raiseSynchronously [as 别名]
def makeBroadcasterService(endpoint, local_ivo, test_interval, whitelist):
"""Create a VOEvent receiver service.
The receiver service accepts VOEvent messages submitted to the broker by
authors.
Parameters
----------
endpoint : implements `twisted.internet.interfaces.IStreamServerEndpoint`
The endpoint to which the service will listen.
local_ivo : `str`
IVOA identifier for the subscriber.
test_interval: `int`
The interval in seconds between test events to be broadcast. If ``0``,
no test events will be sent.
whitelist : `list` of `ipaddress.IPv4Network` or `ipaddress.IPv6Network`
Only addresses which fall in a network included in the whitelist are
permitted to subscribe.
"""
factory = VOEventBroadcasterFactory(local_ivo, test_interval)
if log.LEVEL >= log.Levels.INFO:
factory.noisy = False
whitelisting_factory = WhitelistingFactory(factory, whitelist,
"subscription")
if log.LEVEL >= log.Levels.INFO:
whitelisting_factory.noisy = False
service = StreamServerEndpointService(endpoint, whitelisting_factory)
# Shut down, rather than simply logging an error, if we can't bind.
service._raiseSynchronously = True
return service
示例3: setup
# 需要导入模块: from twisted.application.internet import StreamServerEndpointService [as 别名]
# 或者: from twisted.application.internet.StreamServerEndpointService import _raiseSynchronously [as 别名]
def setup(self):
# initialize storage
# doing it here because it's needed by the server factory
storage.init(self.config['database'])
# TODO from configuration
stor_class = self.config['storage']['class']
klass = getattr(storage, stor_class)
self.storage = klass(*self.config['storage']['params'])
self.keyring = keyring.Keyring(storage.MySQLNetworkStorage(), self.config['fingerprint'], self.network, self.servername, disable_cache=True)
token_auth = auth.AuthKontalkChecker(self.config['fingerprint'], self.keyring)
# upload endpoint
portal = Portal(FileUploadRealm(self), [token_auth])
resource = HTTPSAuthSessionWrapper(portal, auth.KontalkCertificate)
self.putChild('upload', resource)
# download endpoint
portal = Portal(FileDownloadRealm(self), [token_auth])
resource = HTTPSAuthSessionWrapper(portal, auth.KontalkCertificate)
self.putChild('download', resource)
# http service
self.factory = server.Site(self)
sslFactory = MyOpenSSLCertificateOptions(self.config['ssl_key'], self.config['ssl_cert'], self._sslVerify)
endpoint = SSL4ServerEndpoint(reactor, self.config['bind'][1], sslFactory, interface=str(self.config['bind'][0]))
svc = StreamServerEndpointService(endpoint, self.factory)
svc._raiseSynchronously = True
return svc
示例4: setup
# 需要导入模块: from twisted.application.internet import StreamServerEndpointService [as 别名]
# 或者: from twisted.application.internet.StreamServerEndpointService import _raiseSynchronously [as 别名]
def setup(self):
# initialize storage
# doing it here because it's needed by the c2s server factory
storage.init(self.config['database'])
self.presencedb = storage.MySQLPresenceStorage()
try:
stanza_expire = self.config['stanza_expire']
except KeyError:
stanza_expire = 0
self.stanzadb = storage.MySQLStanzaStorage(stanza_expire)
try:
validation_expire = self.config['registration']['expire']
except KeyError:
validation_expire = 0
self.validationdb = storage.MySQLUserValidationStorage(validation_expire)
self.keyring = keyring.Keyring(storage.MySQLNetworkStorage(), self.config['fingerprint'], self.network, self.servername)
authrealm = auth.SASLRealm("Kontalk")
authportal = portal.Portal(authrealm, [auth.AuthKontalkChecker(self.config['fingerprint'], self.keyring, self._verify_fingerprint)])
self.sfactory = XMPPServerFactory(authportal, self, self.network, self.servername)
self.sfactory.logTraffic = self.config['debug']
if 'ssl_key' in self.config and 'ssl_cert' in self.config:
self.sfactory.loadPEM(self.config['ssl_cert'], self.config['ssl_key'])
services = []
if 'plain' in self.config['bind']:
plain_svc = strports.service('tcp:' + str(self.config['bind']['plain'][1]) +
':interface=' + str(self.config['bind']['plain'][0]), self.sfactory)
services.append(plain_svc)
if 'ssl' in self.config['bind']:
ssl_svc = internet.SSLServer(port=int(self.config['bind']['ssl'][1]),
interface=str(self.config['bind']['ssl'][0]),
factory=self.sfactory,
contextFactory=self.sfactory.getSSLContext())
services.append(ssl_svc)
if 'tls' in self.config['bind']:
cert = OpenPGPCertificate(open(self.config['pgp_cert']).read())
key = OpenPGPPrivateKey(open(self.config['pgp_key']).read())
cred = auth.OpenPGPKontalkCredentials(cert, key, str(self.config['pgp_keyring']))
cred.verify_peer = True
tls_svc = StreamServerEndpointService(
tls.TLSServerEndpoint(reactor=reactor,
port=int(self.config['bind']['tls'][1]),
interface=str(self.config['bind']['tls'][0]),
credentials=cred),
self.sfactory)
tls_svc._raiseSynchronously = True
services.append(tls_svc)
return services
示例5: makeReceiverService
# 需要导入模块: from twisted.application.internet import StreamServerEndpointService [as 别名]
# 或者: from twisted.application.internet.StreamServerEndpointService import _raiseSynchronously [as 别名]
def makeReceiverService(endpoint, local_ivo, validators, handlers, whitelist):
"""Create a VOEvent receiver service.
The receiver service accepts VOEvent messages submitted to the broker by
authors.
Parameters
----------
endpoint : implements `twisted.internet.interfaces.IStreamServerEndpoint`
The endpoint to which the service will listen.
local_ivo : `str`
IVOA identifier for the subscriber.
validators : `list` of implementers of `~comet.icomet.IValidator`.
Validators which will be applied to incoming events. Events which fail
validation will be rejected.
handlers : `list` of implementers of `~comet.icomet.IHandler`.
Handlers to which events which pass validation will be passed.
whitelist : `list` of `ipaddress.IPv4Network` or `ipaddress.IPv6Network`
Submissions are only accepted from addresses which fall in a network
included in the whitelist.
Warnings
--------
Although a non-TCP endpoint can be specified (a Unix domain socket, for
example), the whitelist won't be applied to it correctly (indeed, it will
probably break horribly).
"""
factory = VOEventReceiverFactory(local_ivo=local_ivo,
validators=validators,
handlers=handlers)
if log.LEVEL >= log.Levels.INFO:
factory.noisy = False
whitelisting_factory = WhitelistingFactory(factory, whitelist, "submission")
if log.LEVEL >= log.Levels.INFO:
whitelisting_factory.noisy = False
service = StreamServerEndpointService(endpoint, whitelisting_factory)
# Shut down, rather than simply logging an error, if we can't bind.
service._raiseSynchronously = True
return service
示例6: service
# 需要导入模块: from twisted.application.internet import StreamServerEndpointService [as 别名]
# 或者: from twisted.application.internet.StreamServerEndpointService import _raiseSynchronously [as 别名]
def service(description, factory, default=_DEFAULT, reactor=None):
"""
Return the service corresponding to a description.
@param description: The description of the listening port, in the syntax
described by L{twisted.internet.endpoints.server}.
@type description: C{str}
@param factory: The protocol factory which will build protocols for
connections to this service.
@type factory: L{twisted.internet.interfaces.IProtocolFactory}
@type default: C{str} or C{None}
@param default: Do not use this parameter. It has been deprecated since
Twisted 10.2.0.
@rtype: C{twisted.application.service.IService}
@return: the service corresponding to a description of a reliable
stream server.
@see: L{twisted.internet.endpoints.serverFromString}
"""
if reactor is None:
from twisted.internet import reactor
if default is _DEFAULT:
default = None
else:
message = "The 'default' parameter was deprecated in Twisted 10.2.0."
if default is not None:
message += (
" Use qualified endpoint descriptions; for example, "
"'tcp:%s'." % (description,))
warnings.warn(
message=message, category=DeprecationWarning, stacklevel=2)
svc = StreamServerEndpointService(
endpoints._serverFromStringLegacy(reactor, description, default),
factory)
svc._raiseSynchronously = True
return svc
示例7: setup
# 需要导入模块: from twisted.application.internet import StreamServerEndpointService [as 别名]
# 或者: from twisted.application.internet.StreamServerEndpointService import _raiseSynchronously [as 别名]
def setup(self):
storage.init(self.config['database'])
cert = OpenPGPCertificate(open(self.config['pgp_cert']).read())
key = OpenPGPPrivateKey(open(self.config['pgp_key']).read())
cred = auth.OpenPGPKontalkCredentials(cert, key, str(self.config['pgp_keyring']))
cred.verify_peer = True
ring = keyring.Keyring(storage.MySQLNetworkStorage(), self.config['fingerprint'], self.network, self.servername)
self.service = NetService(self.config, self, ring, cred)
self.service.logTraffic = self.logTraffic
self.sfactory = XMPPNetServerFactory(self.service)
self.sfactory.logTraffic = self.logTraffic
tls_svc = StreamServerEndpointService(
tls.TLSServerEndpoint(reactor=reactor,
port=int(self.config['bind'][1]),
interface=str(self.config['bind'][0]),
credentials=cred),
self.sfactory)
tls_svc._raiseSynchronously = True
return tls_svc