我接近它的方法是在布局页面中加载 socket.io:
<script src='<%= socketIoUrl %>/socket.io/socket.io.js'></script>
<script type="text/javascript">
var socket = io.connect('<%= socketIoUrl %>');
</script>
然后我添加了一个动态助手来公开socketIoUrl
:
var helpers = function(app) {
app.dynamicHelpers({
socketIoUrl: function(req, res) {
return app.settings.socketIoUrl;
}
});
};
module.exports = helpers;
所以在我的 server.js 文件中,我根据环境设置了适当的值并加载了帮助文件:
app.configure('development', function(){
app.set('socketIoUrl', 'http://localhost:3003');
});
app.configure('test', function(){
app.set('socketIoUrl', 'http://...');
});
app.configure('production', function(){
app.set('socketIoUrl', 'http://...');
});
require('./apps/helpers')(app);
因此,现在您可以socket
在您拥有的任何其他 js 文件中使用在布局页面中创建的变量。