dpallot / simple-websocket-server

A python based websocket server that is simple and easy to use.
951 stars 319 forks source link

Exception on handleMessage #94

Closed fupkit closed 4 years ago

fupkit commented 4 years ago

Hello, I am writing a WebSocket function utilizing the handleMessage function. Here is my code:

import sys
import traceback
import detect

from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket

class WsHandler(WebSocket):
    def handleMessage(self):
        # echo message back to client

        msg = ''
        target = str(self.data)
        print(target)
        try:
            target = target.replace('')
            detected = detect.detect(target)
            print(detected)
            if(detected != None):
                msg += ('Object found! Normalized bounding polygon vertices: ')
                for vertex in detected.bounding_poly.normalized_vertices:
                    msg += (' - ({}, {})'.format(vertex.x, vertex.y))
            else:
                msg = ('Nothing founded.')
        except Exception:
            traceback.print_stack()
            msg = ('Server Error.')
        print(msg)
        self.sendMessage('from server :\n' + msg)
    def handleConnected(self):
        print(self.address, 'connected')

    def handleClose(self):
        print(self.address, 'closed')

server = SimpleWebSocketServer('', 8000, WsHandler)
server.serveforever()

And below are the exception I've got:


  File "main.py", line 37, in <module>
    server.serveforever()
  File "/usr/local/lib/python2.7/dist-packages/SimpleWebSocketServer/SimpleWebSocketServer.py", line 697, in serveforever
    self.serveonce()
  File "/usr/local/lib/python2.7/dist-packages/SimpleWebSocketServer/SimpleWebSocketServer.py", line 677, in serveonce
    client._handleData()
  File "/usr/local/lib/python2.7/dist-packages/SimpleWebSocketServer/SimpleWebSocketServer.py", line 295, in _handleData
    self._parseMessage(ord(d))
  File "/usr/local/lib/python2.7/dist-packages/SimpleWebSocketServer/SimpleWebSocketServer.py", line 578, in _parseMessage
    self._handlePacket()
  File "/usr/local/lib/python2.7/dist-packages/SimpleWebSocketServer/SimpleWebSocketServer.py", line 247, in _handlePacket
    self.handleMessage()
  File "main.py", line 25, in handleMessage
    traceback.print_stack()
replace() takes at least 2 arguments (1 given)

If I run the function without using WebSocket and it is fine. Any idea can help? My python version is 2.7.16

fupkit commented 4 years ago

It my bad, I've over see the replace function