[Zope-dev] server for new protocol?

Fred Drake fred at zope.com
Fri Feb 27 12:39:46 EST 2004


On Thursday 26 February 2004 06:50 am, Nikolay Kim wrote:
 > is there any way create server for new protocol without changing ZServer
 > module?

There's clearly a need for some more documentation here, but I'm not sure what 
to write yet, or where it should go.

Contrary to many of the other responses, yes, this shouldn't be difficult at 
all.  You'll need a couple of pieces of Python code:

1.  Your server implementation.  It sounds like you have this already.

2.  A factory object that can accept configuration data and create an instance 
of your server object.

You then need to create a ZConfig component that provides a section type to 
support your server.  The ZConfig documentation discusses this somewhat.  The 
new section type will need to declare that it implements the ZServer.server 
abstract type; it should probably look something like this:

<component>
  <import package="ZServer"/>

  <sectiontype name="myserver"
               implements="ZServer.server"
               datatype="mypackage.server.ServerFactory">

    <!-- configuration data should be described here -->

  </sectiontype>
</component>

You'll need to arrange for the package containing this component is available 
on the Python sys.path before zope.conf is loaded; this is mostly easily done 
by manipulating the PYTHONPATH environment variable.

Your zope.conf file can now include the following to load and use your new 
server:

%import mypackage
<myserver>
  # configuration settings go here
</myserver>

Feel free to ask questions about this; I'm usually more available to respond 
than I have been a couple of days.


  -Fred

-- 
Fred L. Drake, Jr.  <fred at zope.com>
PythonLabs at Zope Corporation




More information about the Zope-Dev mailing list