[Twisted-Python] Writing onto txWS

vinod kumar vk.86.811 at gmail.com
Fri Jun 29 08:52:06 MDT 2012


Hi All,

   I have run and edited the example provided for txWS. The writing part
from server to client browser is shown only as self.transport.write()
inside dataReceived function in websockets.py. how do I write on to the
socket i.e. on to the browser, from a different function inside server
code(server.tac). I'm just starting another xmlrpc server on a thread where
I receive some notifications. I need to forward the same to socket. The
bold point below  is where I want to write on to socket. How can we do
that? Please help me out.
-------------------------------------------------------
import time

from twisted.internet import reactor
from twisted.application import internet
from twisted.application.service import Application, Service
import xmlrpclib
from txws import WebSocketFactory

from src.protocols.websockets import WebSocketServerFactory
from constants import *

class WebSocketService(Service):
    """
    A simple service that listens on port 8077 for WebSockets traffic.
    """
    def __init__(self):
        self.start_time = time.time()

    def start_service(self, application):
        """
        Gets the show on the road. Fires up a factory, binds the port.
        """
        echofactory = WebSocketServerFactory(self)
        factory = WebSocketFactory(echofactory)
        ws_server = internet.TCPServer(8077, factory)
        ws_server.setName('ws-tcp')
        ws_server.setServiceParent(application)

    def shutdown(self):
        """
        Gracefully shuts down the service.
        """
        reactor.callLater(0, reactor.stop)

def listDevices(id):
print "listDevice: %(id)s" % {"id": str(id)}
 return None

def event(id, address, key, value):
        #websocket.send("ufffffffffuuuuuu")
*        #I need to write the below print statement on to browser *
        print "event: %(id)s: %(address)s: %(key)s = %(value)s" % {"id":
str(id),
"address": str(address), "key": str(key), "value": str(value)}

def aSillyBlockingMethod(x):
    import time
    import xmlrpclib
    time.sleep(2)
    from SimpleXMLRPCServer import SimpleXMLRPCServer
    from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
    from constants import *
    server = SimpleXMLRPCServer((SERVER_IP, SERVER_PORT), logRequests=True,
allow_none=True)
    server.register_introspection_functions()
    server.register_multicall_functions()
    print "server started at %s" % str(SERVER_URL)
    server.register_function(listDevices)
    server.register_function(event)
    print 'function also got registered'
    server.serve_forever()
    .............................continues

Thanks,
Vinodh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20120629/f2581a71/attachment.html>


More information about the Twisted-Python mailing list