我正在开发一个使用 FeathersJS 服务器的应用程序,以及一个使用 FeathersJS Socket.io 客户端连接到服务器的 Electron 应用程序。我想使用 Electron 应用程序中的通道在服务器中的某些数据发生更改时收到通知。 Electron 应用程序是一个“自治”应用程序,因此没有任何用户身份验证或交互。 Electron 应用程序将有一个唯一的 ID,代表其运行的每台机器。
考虑到没有任何类型的身份验证,如何在socket.io连接中添加Electron应用程序的唯一id,以便在服务器中接收该id并可以在FeathersJS服务器中创建相应的通道?
谢谢你!
如何通过 Socket.io 传输将服务器上的信息传递到 FeathersSocket.io中间件已记录在 Socket.io 传输 API 中。还有一个示例如何将查询参数从客户端传递到服务器在 Socket.io 文档中。放在一起,在客户端上看起来像这样:
const socket = io('http://feathers-server.com', {
query: {
token: 'cde'
}
});
在服务器上就像这样:
app.configure(socketio(function(io) {
io.use(function (socket, next) {
socket.feathers.token = socket.handshake.query.token;
next();
});
}));
socket.feathers
与频道完全相同connection
对象,所以它现在将有一个token
您可以用来作为频道加入的属性:
app.on('connection', connection => {
if (connection.token) {
app.channel(connection.token).join(connection);
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)