2

尝试从未安装在根目录的 nginx 后面提供feathersjs + socket.io。大部分feathersjs都可以正确配置但是在尝试调用socket.io的路径配置时遇到了麻烦,即http://socket.io/docs/server-api/#server#path(v:string):server

nginx配置:

upstream socket_nodes {
  ip_hash;
  server localhost:19090 ;
}
server {
 ...
 location /spx {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_pass http://socket_nodes;

    # root   html;
    # index  index.html index.htm;
    }
}

和 node.js 代码:

var feathers = require('feathers');
var app = feathers();
app.configure(feathers.rest());
// Configure Socket.io real-time APIs
app.configure(feathers.socketio(function(io){
    io.path('/spx/socket.io');
}));

...但是当浏览器点击 /spx/socket.io/socket.io.js.

有任何想法吗?

4

1 回答 1

2

正如评论中提到的,io.path在调用它之后似乎不起作用,socketio.listen(server)这就是 Feathers 的情况。feathers-socketiov1.3.3模块的现在允许传递一个选项对象,让您设置路径。虽然是为 Feathers 2 构建的,但它与 Feathers 1.x(而不是 )一起工作得很好:feathers.socketio

var feathers = require('feathers');
var socketio = require('feathers-socketio');
var app = feathers();

app.configure(feathers.rest());
// Configure Socket.io real-time APIs
app.configure(socketio({
  path: '/spx/socket.io/'
}, function(io){
  // Do other things here
}));
于 2016-02-18T03:24:50.513 回答