我正在开发一个使用FeathersJS服务器的应用程序,以及一个使用FeathersJS Socket.io客户端连接到服务器的Electron应用程序。当服务器中的某些数据发生更改时,我想使用Electron应用程序中的通道来获得通知。 Electron应用程序是一个“自动”应用程序,因此没有任何用户身份验证或交互。 Electron应用程序将具有一个唯一的ID,该ID代表其运行的每台计算机。
考虑到没有任何身份验证,我如何在socket.io连接中添加Electron应用程序的唯一ID,以便该ID在服务器中接收,并且可以在FeathersJS中创建相应的通道服务器?
谢谢!
答案 0 :(得分:0)
如何Socket.io middleware记录了如何通过in the Socket.io transport API将服务器上的信息从Socket.io传输传递到Feathers。还有一个示例如何将查询参数从客户端传递到服务器in the Socket.io documentation。像这样在客户端上放在一起:
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);
}
});