我正在制作一个聊天程序。
我正在使用 Nginx 服务器和 NodeJS。
我已经通过 SSL 设置了 WebSocket 并且运行良好。
我决定使用 Cookies 进行身份验证。
有两个非常关键的函数:
mconnection.prototype.make_server_https=function(){
console.log('Make server https');
var cthis=this;
var server_https=modules.https.createServer({
key: this.ssl_key,
cert:this.ssl_cert,
ca:this.ssl_ca
},(request,response)=>{
console.log('### CreateServer ###');
console.log('CreateServer, Request:');
console.log(request);
console.log('CreateServer, Response:');
console.log(response);
console.log('######');
并且
mconnection.prototype.make_server_websocket=function(){
var server_websocket=new modules.ws.Server({server:this.server_https});
var cookie = require("cookie");
var cthis=this;
//whenever a new client connects with the server.
server_websocket.on('connection', function(client_socket, request){
console.log('### On Connection ###');
console.log('OnConnection, Client Socket:');
console.log(client_socket);
console.log('OnConnection, Request:');
console.log(request);
console.log('######');
如果我在客户端URL中指定端口号,函数“make_server_https”被执行,在其中可以通过响应对象访问cookie并设置它。
但在原始URL中,函数“make_server_websocket”被执行,在那里我可以访问服务器上的客户端套接字,但似乎无法访问cookie。
我需要使用client_websocket来启动与该给定客户端的连接。我需要以某种方式将其与cookie登录信息联系起来。
但我从未同时拥有两者,因此不知道如何将它们连接起来以进行登录。
我可能有所误解,非常感谢您提供任何帮助。