это, вероятно, больше вопрос о потоковом использовании, чем о моем веб-сайте. Я использую «SimpleWebSocket» из GitHub (https://github.com/dpallot/simple-websocket-server) пример работает отлично:Запустите сервер WebSocket в потоке
from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
class SimpleEcho(WebSocket):
def handleMessage(self):
# echo message back to client
self.sendMessage(self.data)
def handleConnected(self):
print self.address, 'connected'
def handleClose(self):
print self.address, 'closed'
server = SimpleWebSocketServer('', 8000, SimpleEcho)
server.serveforever()
Сервер работает, я могу подключиться и отправлять сообщения.
Теперь я пытаюсь запустить его как тему с этими классами: Это одна предполагается создать много потоков, в том числе WebSocketServer
from websockethread import WebSocketThread
class startManyThreads:
def __init__(self):
self.thread1 = WebSocketThread()
self.thread1.start()
if __name__ == "__main__":
startManyThreads = startManyThreads()
Этот класс должен работать как мой резьбы:
import threading
from SimpleWebSocketServer import SimpleWebSocketServer
from webSocketServer import WebSocketServer
class WebSocketThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
server = SimpleWebSocketServer('', 8000, WebSocketServer)
server.serveforever()
И это «индивидуальный» пример эха:
from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
class SimpleEcho(WebSocket):
def handleMessage(self):
# echo message back to client
self.sendMessage(self.data)
def handleConnected(self):
print self.address, 'connected'
def handleClose(self):
print self.address, 'closed'
Я также попытался получить следующее: class SimpleEcho(WebSocket, threading.Thread):
Любые идеи, что я делаю неправильно? & Спасибо заблаговременно!
Edit: В результате, когда я бегу «simpleEcho» является то, что я получаю приглашение можно подключить через websocket.html (при условии, на GitHub), отправлять и получать сообщения
В результате, когда я положил его в нить (любой из трех способов, которые я пытался), такое же поведение, за исключением случаев, когда я пытаюсь «подключиться» к websocket.html, я получаю «error: undefined». С птар я проверил и сервер кажется так работать & прослушивает порт 8000
Edit 2: Производное новый класс от SimpleWebSocketServer
import threading
from SimpleWebSocketServer import SimpleWebSocketServer
class ThreadSimpleWebSocketThread(threading.Thread, SimpleWebSocketServer):
def __init__(self, serversocket):
threading.Thread.__init__(self)
self.serversocket = serversocket
def serveforever(self):
SimpleWebSocketServer.serversocket = self.serversocket
SimpleWebSocketServer.selectInterval = 0.1
SimpleWebSocketServer.listeners = [self.serversocket]
super(ThreadSimpleWebSocketThread, self).serveforever()
def run(self):
self.serveforever()
Каково ожидаемое поведение и фактическое поведение? – merlin2011
Ожидаемое поведение будет заключаться в том, что я могу подключиться к «тестовому клиенту», предоставленному на github. Фактическое поведение заключается в том, что я получаю «неопределенную ошибку» (в тесте «Домашняя страница»), как только я запускаю ее как поток.нет ошибок в другом месте – Markus