runtime/NevowServer.py
changeset 1439 a68cd4253259
parent 1438 19ebe96b41c0
child 1453 f31353cac197
equal deleted inserted replaced
1438:19ebe96b41c0 1439:a68cd4253259
     1 import os
     1 import os
     2 from nevow import rend, appserver, inevow, tags, loaders, athena
     2 from nevow import rend, appserver, inevow, tags, loaders, athena
     3 from nevow.page import renderer
     3 from nevow.page import renderer
     4 from twisted.python import util
     4 from twisted.python import util
       
     5 from twisted.internet import reactor
     5 
     6 
     6 xhtml_header = '''<?xml version="1.0" encoding="utf-8"?>
     7 xhtml_header = '''<?xml version="1.0" encoding="utf-8"?>
     7 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     8 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
     8 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
     9 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
     9 '''
    10 '''
   143     def disconnected(self, reason):
   144     def disconnected(self, reason):
   144         self.MainPage.resetHMI()
   145         self.MainPage.resetHMI()
   145         #print reason
   146         #print reason
   146         #print "We will be called back when the client disconnects"
   147         #print "We will be called back when the client disconnects"
   147 
   148 
   148 def RegisterWebsite(reactor):
   149 def RegisterWebsite(port):
   149     website = WebInterface()
   150     website = WebInterface()
   150     site = appserver.NevowSite(website)
   151     site = appserver.NevowSite(website)
   151 
   152 
   152     website_port = 8009
       
   153     website_port_range = 10
       
   154 
       
   155     listening = False
   153     listening = False
   156     port_offset = 0
   154     reactor.listenTCP(port, site)
   157     while not listening and port_offset < website_port_range:
   155     print "Http interface port :",port
   158         try:
   156     return website
   159             reactor.listenTCP(website_port + port_offset, site)
       
   160             listening = True
       
   161             print "Http interface port :",website_port + port_offset
       
   162             return website
       
   163         except: # TODO narrow exception
       
   164             port_offset += 1
       
   165 
       
   166     return None
       
   167 
   157 
   168 class statuslistener:
   158 class statuslistener:
   169     def __init__(self, site):
   159     def __init__(self, site):
   170         self.oldstate = None
   160         self.oldstate = None
   171         self.site = site
   161         self.site = site