2017-09-20 13 views
0

現在sails.ioはsocket.io 1.7.1を使用しています。セイル1.0では変更されません。ですから、私は、ソケットのリアルタイムレイヤーに頼るのではなく、socket.ioパッケージを使ってsocket.io 2.0を使う予定でした。次のようにsocket.ioのドキュメントによると、急行で実装するのは非常に簡単です:Socket.io 2.x with Sails

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

io.on('connection', function(socket){ 
    console.log('a user connected'); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

私たちは帆に同じsocket.io 2.0の実装を書くことができますどのように?

答えて

1

Sails 1.0アプリケーションで使用される基本となるExpressサーバーは、sails.hooks.http.serverとして公開されています。つまり、あなたのアプリのconfig/bootstrap.jsファイルでその上に便乗することができます。

"hooks": { 
    "sockets": false, 
    "pubsub": false 
} 

これをまた:また、あなたの.sailsrcファイルで、デフォルトsocketspubsubフックをオフにする必要があります

module.exports.bootstrap = function (done) { 

    var io = require('socket.io')(sails.hooks.http.server); 
    io.on('connection', function(socket){ 
    console.log('a user connected'); 
    }); 

} 

sails.ioグローバルを解放するというメリットがあるため、独自の実装に再利用することができます。

+0

ブートストラップに実装されている場合は、コントローラ用のソケットをエクスポートしてメッセージを送信することをどのように提案しますか?接続が確立されたら、sails.config.globalまたは 'sails.socket = socket'に割り当てる必要がありますか? – SpaceX