![](/img/trans.png)
[英]How can I establish a secure connection to a websocket on localhost?
[英]How can I establish one connection between a user and the WebSocket?
我在节点/ Express服务器上运行了websocket。
我需要在websocket和客户端之间向后发送json
字符串,并向其发送第四字符串。
但是,如果用户打开多个浏览器的选项卡,我希望Websocket服务器知道这是已连接的同一用户。
这是逻辑执行顺序
新消息应仅返回给该用户,而不能返回给其他用户。
如何在用户和WebSocket之间建立一个连接?
这是我的服务器设置
var env = require('./config');
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var clients = [];
server.listen(env.socket.port, env.socket.host, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Websocket running at http://%s:%s', host, port);
});
app.get('/', function (req, res) {
res.send('Welcome!');
});
io.on('connection', function (socket) {
clients[] = socket;
socket.emit('chat', { hello: 'world' });
socket.on('chat', function(msg){
console.log('message: ' + msg);
sendAll(msg);
});
});
function sendAll (message) {
for (var i=0; i< clients.length; i++) {
clients[i].send("Message For All: " + message);
}
}
如果您没有针对用户的身份验证,则需要一些特定于浏览器的数据来关联后端上的用户。
我不知道cookie(没有使用过cookie),但是在JavaScript级别上,一种方法是在本地存储中存储本地生成的随机ID(具有足够的长度,因此您不必担心冲突)在浏览器中,并将其作为初始消息的一部分在WebSocket级别进行传输。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.