私は昨日ソケット、socket.ioとセールを勉強しました、そして、私は「かなり失くしました。私は今までにそれらを使ったことがありません」と言わなければなりません。私は理解したと思ったが、私はもうわからない。
私は自分の仕事に基づいています http://socket.io/get-started/chat/。私は "Sails.js"フレームワークを使って作業しています。これはソケットなどを扱うための独自のメソッドを追加しています。
に config/sockets.js
私たちは onConnect
そして onDisconnect
メソッド見る https://github.com/balderdashy/sails-docs/blob/master/reference/sails.config/sails.config.sockets.md と(ソースコード) https://gist.github.com/Vadorequest/568afc14294f1448ab55
sailsとsocket.ioを比較しましょう。このコードを見てみましょう。
io.on("connection", function(socket){
console.log("a user connected");
socket.on("disconnect", function(){
console.log("user disconnected");
});
});
socket.ioが開いているとき(接続)は、定義します。 listeners
好きな socket.on("disconnect")
クライアントまたはサーバーからのemmitedリクエストを待っています。 socket.emit
方法。
私が考えたのは帆 onConnect
socket.ioと同じです。 io.on(connection)
。それから帆 onDisconnect
methodはと同等です socket.on("disconnect")
、内部 io.on(connection)
これはショートカットのようなもので、この特定のイベントを処理してその標準を尊重するための適切な方法です( on
)。
しかし、私は自分のコードをすでにsocket.ioとsailsを使って作業していて、彼は私が「間違っていて、他のリスナーの中にリスナーを定義することは(少なくとも)厄介な混乱を招く」ことを教えてくれました。
セイルソケットの設定方法を誤解したかどうかを知りたいのですが。
間違っていたら、泣いても乗り越えられます。
回答:
回答№1の場合は3私の第一印象は実際には正しかったので、セイルは socket.io
私たちにとっての論理、これら二つのコードは同等で、最初のものは socket.io
そして2番目はSailsを使う config/sockets.js
方法:
// Socket.io way
io.on("connection", function(socket){
socket.on("disconnect", function(){
console.log("user disconnected");
});
});
// Sails way (config/sockets.js), hide the socket.io logic. (Facade design pattern)
module.exports.sockets = {
onDisconnect: function(session, socket) {
console.log("user disconnected");
}
}
同じように、帆 onConnect
methodはと同等です
io.on("connection", function(socket){
socket.on("connect", function() {
console.log("user connected");
});
});