使用SimpleWebSocketServer模块的Python Websocket安全服务器

使用SimpleWebSocketServer模块的Python Websocket安全服务器,python,websocket,Python,Websocket,我正在尝试用Python实现websocket安全服务器(基于模块) 在链接中,它表示模块支持TLS和SSL连接,但没有解释如何使用 我目前拥有的代码如下: from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket import ssl class SimpleResponder(WebSocket): def handleMessage(self): self.sendMessage(sel


我正在尝试用Python实现websocket安全服务器(基于模块)
在链接中,它表示模块支持TLS和SSL连接,但没有解释如何使用

我目前拥有的代码如下:

from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
import ssl

class SimpleResponder(WebSocket):

    def handleMessage(self):
        self.sendMessage(self.data)

    def handleConnected(self):
        print self.address, 'connected'

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

server = SimpleWebSocketServer('', 8000, SimpleResponder)
try:
    server.serveforever()
except KeyboardInterrupt:
    pass
print "Server ended"
server.socket = ssl.wrap_socket (server.socket, certfile='path/to/localhost.pem', server_side=True)
我尝试以与HTTP服务器相同的方式实现SSL包装(如下所示):

但似乎不起作用(我得到下一个错误):

因此很明显,
SimpleWebSocketServer
类的结构与
SimpleHTTPServer
类不同。

那么我如何实现一个安全的websocket服务器呢?

来自:

TLS/SSL示例

1) 生成具有密钥的证书

openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.pem
2) 运行安全TSL/SSL服务器(在本例中,cert.pem文件位于 同一目录)

3) 通过提供websocket.html向浏览器提供证书 通过https。HTTPS服务器将在本地服务器中查找cert.pem 目录确保websocket.html也位于同一目录中,以便 服务器运行的位置

sudo python SimpleHTTPSServer.py 
4) 打开web浏览器以执行以下操作:

5) 将ws://localhost:8000/更改为wss://localhost:8000 点击 连接

注意:如果您在连接时遇到问题,请确保 已将证书添加到浏览器中以防止异常 或任何要连接的主机:端口对 对

我发现这很容易使用。它可以与网络和网络引擎一起工作

python SimpleExampleServer.py --example chat --ssl 1 --cert ./cert.pem
sudo python SimpleHTTPSServer.py