gpt4 book ai didi

node.js - 无法连接安全的 websocket

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:01 25 4
gpt4 key购买 nike

使用 nodejs 这个客户端代码不工作:

var sock= require('websocket').w3cwebsocket;


var sock= new W3CWebSocket("wss://" + 'www.mysite.com'+ ':31333');

sock.onopen = function (evt)
{
console.log("it never reaches here");


//..................
}

实际上,当我的 nodejs 服务器未使用 SSL 时它可以正常工作,因此这段代码曾经可以正常工作:

var sock= new W3CWebSocket("ws://" + 'www.mysite.com'+ ':31333');

服务器代码如下所示:

var ws = require("./nodejs-websocket");
var fs = require('fs');

var options = {
secure: true,
key: fs.readFileSync('ssl/mysite.com.key'),
cert: fs.readFileSync('ssl/mysite.com.crt')
};

var server = ws.createServer(options, function (conn)
{
console.log("New connection")
conn.on("text", function (str)
{

//some code here

});
conn.on("close", function (code, reason)
{
console.log("Connection closed")
});

}).listen(31333);

我可以从浏览器使用 Websockets 与该服务器通信。但不是来自 Linux 命令行。如何使其从 Linux 命令行运行?

最佳答案

我不能对您正在使用的图书馆说太多。但是对于最近的 .并改用这个库 socket.io-redis socket.io它们专门允许您使用安全连接。下面是一个代码示例,说明它是如何工作的,上面的链接将指向文档。

var redis = require('redis');

var client = redis.createClient(config.redisPort,config.redis,
{auth_pass: config.reDISCACHEKEY, tls: {servername: config.redis}}); //creates a new client
var sclient=redis.createClient(config.redisPort,config.redis,
{auth_pass: config.reDISCACHEKEY, tls: {servername: config.redis}}); //creates a new client

var io = require('socket.io').listen(app);
var redis = require('socket.io-redis');

io.adapter(redis({pubClient:client,subClient:sclient}))

io.on('connection', function(socket){

client.set(socket.handshake.query.userName, socket.id);

//sets what happens when a socket disconnects
//deletes socket information

socket.on('disconnect', function(){
let name=socket.handshake.query.userName;
client.del(name, function(err, reply) {
});
});
socket.on('message', function(msg, func){
let name=socket.handshake.query.userName;
let sockectObj=msg;
io.emit('Message', sockectObj);
});
});

如果需要更多请告诉我

关于node.js - 无法连接安全的 websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54844435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com