我正在使用基于Node.js的https服务器,该服务器使用HTTP Basic进行身份验证(这很好,因为数据是通过SSL加密连接发送的)。
现在我想提供一个Socket.io连接
问题是如何做到这一点。我已经发现{ secure: true }在连接到套接字时需要在客户端JavaScript代码中指定,但是如何在服务器端强制套接字连接只能在SSL上运行,并且仅适用于经过身份验证的用户?
{ secure: true }
我猜想SSL是一件容易的事,因为Socket.io服务器仅绑定到https服务器,所以它应该仅使用SSL运行,并且不可能在(另外)运行的http服务器上运行它, 对?
关于另一件事,我丝毫不了解如何确保只有在用户使用HTTP Basic成功通过身份验证后才能建立套接字连接。
有任何想法吗?
尽管Linus的答案基本上是正确的,但我现在使用session.socket.io以更简单的方式解决了该问题- 基本上可以完成相同的任务,但是编写的自定义代码更少。