FeathersJS & Socket.io - 确定请求来自哪里
FeathersJS & Socket.io - Determine where the request came from
我要解决的问题是我们有一个应用程序,它有一个移动客户端和一个 admin-only 网络客户端,它们都使用 Socket 连接到 back-end。IO/Feathers 客户.
我希望有一种方法可以通过确定请求是否来自管理客户端来应用挂钩或以其他方式修改查询或响应。
到目前为止,我发现我无法访问 server-side 上的 headers,例如原始客户端 URI(即确定请求是否来自admin.mysite.com) 使用 Socket.IO 提供商,并且 adding headers via the Socket.IO doesn't work when the transport is set to websockets because of the spec.
我也研究过频道,这看起来是个好主意,但示例是根据用户数据而不是请求数据将人们放入频道。
有谁知道实现此目的的合理方法吗?
Feathers Socket.io transport documentation shows how to pass information from Socket.io to Feathers。 socket.request
包含发起HTTP请求的信息。
app.configure(socketio(function(io) {
io.use(function (socket, next) {
socket.feathers.isSomeServer = socket.request.connection.remoteAddress === myServerIp;
next();
});
}));
现在您可以查看 params.isSomeServer
。
我要解决的问题是我们有一个应用程序,它有一个移动客户端和一个 admin-only 网络客户端,它们都使用 Socket 连接到 back-end。IO/Feathers 客户.
我希望有一种方法可以通过确定请求是否来自管理客户端来应用挂钩或以其他方式修改查询或响应。
到目前为止,我发现我无法访问 server-side 上的 headers,例如原始客户端 URI(即确定请求是否来自admin.mysite.com) 使用 Socket.IO 提供商,并且 adding headers via the Socket.IO doesn't work when the transport is set to websockets because of the spec.
我也研究过频道,这看起来是个好主意,但示例是根据用户数据而不是请求数据将人们放入频道。
有谁知道实现此目的的合理方法吗?
Feathers Socket.io transport documentation shows how to pass information from Socket.io to Feathers。 socket.request
包含发起HTTP请求的信息。
app.configure(socketio(function(io) {
io.use(function (socket, next) {
socket.feathers.isSomeServer = socket.request.connection.remoteAddress === myServerIp;
next();
});
}));
现在您可以查看 params.isSomeServer
。