python jsocket运行时错误

python jsocket运行时错误,python,jsocket,Python,Jsocket,我正在尝试使用python编写JSocket服务器。我使用了来自的示例代码,并对其进行了修改,以便服务器在收到来自客户端的消息后立即回复。当我的客户机尝试在“client.read_obj()”中接收响应时,我得到一个异常。我的代码和堆栈跟踪如下: #!/usr/bin/python import jsocket import logging logger = logging.getLogger("jsocket.testJSocket") clas

我正在尝试使用python编写JSocket服务器。我使用了来自的示例代码,并对其进行了修改,以便服务器在收到来自客户端的消息后立即回复。当我的客户机尝试在“client.read_obj()”中接收响应时,我得到一个异常。我的代码和堆栈跟踪如下:

    #!/usr/bin/python

    import jsocket
    import logging

    logger = logging.getLogger("jsocket.testJSocket")

    class MyFactoryThread(jsocket.ServerFactoryThread):
        def __init__(self):
            super(MyFactoryThread, self).__init__()
            self.timeout = 2.0

        def _process_message(self, obj):  
            if obj!='':
                if obj ['message'] == 'new connection':
                    logger.info("new connection")
                    self.socket.send_obj({"dbResult": "result"})
                else:
                    logger.info(obj)
                    self.socket.send_obj({"dbResult": "result"})


    if __name__ == '__main__':
        import time
        import jsocket

        server = jsocket.ServerFactory(MyFactoryThread)
        server.timeout = 2.0
        server.start()

        time.sleep(1)
        client = jsocket.JsonClient()
        client.connect()
        client.send_obj({"message":"new connection"})

        client.read_obj()

        client.close()

        server.stop()
        server.join()
堆栈跟踪:

    pi@raspberrypi:~/programming/lights/comms $ sudo python testJSocket.py 
    [2016-02-11 20:28:54,475][DEBUG][tserver][start] Threaded Server has been started.
    [2016-02-11 20:28:55,479][DEBUG][jsocket_base][accept_connection] connection accepted, conn socket (127.0.0.1,39001)
    [2016-02-11 20:28:55,481][INFO][jsocket_base][connect] ...Socket Connected
    [2016-02-11 20:28:55,485][INFO][testJSocket][_process_message] new connection
    [2016-02-11 20:28:55,486][INFO][tserver][run] client connection broken, closing socket
    [2016-02-11 20:28:55,487][DEBUG][jsocket_base][_close_connection] closing the connection socket
    [2016-02-11 20:28:55,488][DEBUG][jsocket_base][_close_socket] closing main socket
    Traceback (most recent call last):
      File "testJSocket.py", line 39, in <module>
        client.read_obj()
      File "/usr/local/lib/python2.7/dist-packages/jsocket/jsocket_base.py", line 74, in read_obj
        size = self._msg_length()
      File "/usr/local/lib/python2.7/dist-packages/jsocket/jsocket_base.py", line 69, in _msg_length
        d = self._read(4)
      File "/usr/local/lib/python2.7/dist-packages/jsocket/jsocket_base.py", line 65, in _read
        raise RuntimeError("socket connection broken")
    RuntimeError: socket connection broken
pi@raspberrypi:~/programming/lights/comms$sudo python testJSocket.py
[2016-02-11 20:28:54475][DEBUG][tserver][start]线程服务器已启动。
[2016-02-11 20:28:55479][DEBUG][jsocket_base][accept_connection]连接已接受,连接插座(127.0.0.139001)
[2016-02-11 20:28:55481][INFO][jsocket_base][connect]…插座已连接
[2016-02-11 20:28:55485][INFO][testJSocket][[u进程消息]新连接
[2016-02-11 20:28:55486][INFO][tserver][run]客户端连接断开,正在关闭套接字
[2016-02-11 20:28:55487][DEBUG][jsocket_base][[u close_connection]关闭连接插座
[2016-02-11 20:28:55488][DEBUG][jsocket_base][[u close_socket]关闭主插座
回溯(最近一次呼叫最后一次):
文件“testJSocket.py”,第39行,在
client.read_obj()
文件“/usr/local/lib/python2.7/dist packages/jsocket/jsocket_base.py”,第74行,以read_obj格式
大小=自身。\u msg\u长度()
文件“/usr/local/lib/python2.7/dist packages/jsocket/jsocket_base.py”,第69行,长度为
d=自读数(4)
文件“/usr/local/lib/python2.7/dist packages/jsocket/jsocket_base.py”,第65行,in_read
引发运行时错误(“套接字连接断开”)
运行时错误:套接字连接断开

有什么办法解决这个问题吗?

解决了。我用错插座了。正确代码:

        def _process_message(self, obj):

            if obj!='':
                if obj ['message'] == 'new connection':
                    logger.info("new connection")
                    self.send_obj({"dbResult": "result"})
                else:
                    logger.info(obj)
                    self.send_obj({"dbResult": "result"})