基本
var port = 3000 var io = require('socket.io')(port) io.sockets.on("connection", function (socket) { io.sockets.emit("info", "全員に送信") //送信元含む全員に送信 io.emit("info", "省略可") //上と同じ socket.broadcast.emit("info", "送信元以外に送信") //送信元以外の全員に送信 io.to(socket.id).emit('info', '送信元のあなただけ') //特定のユーザーのみ(socket.idで送信元のみに送信) //とあるユーザーから「hogehoge」メッセージを受け取ったらpiyopiyoで送信 socket.on("hogehoge", function (message) { io.emit("piyopiyo", message) //送信元含む全員に送信 socket.broadcast.emit("piyopiyo", message) //送信元以外の全員に送信 io.to(socket.id).emit('info', '送信元のあなただけ') //特定のユーザーのみ(socket.idで送信元のみに送信) }) })
Namespace
var port = 3000 var io = require('socket.io')(port) var nspace = io.of('/onamae'); // io.sockets.on("co… → nspace.on("connectiに変化 nspace.on("connection", function (socket) { nspace.emit("info", "全員に送信") //Namespace内の送信元含む全員に送信 //Namespace内の送信元以外の全員に送信は無い・・・・? nspace.to(socket.id).emit('info', '送信元のあなただけ') //Namespace内の特定のユーザーのみに送信(socket.idで送信元のみに送信) //とあるユーザーから「hogehoge」メッセージを受け取ったらpiyopiyoで送信 socket.on("hogehoge", function (message) { nspace.emit("piyopiyo", message) //Namespace内の送信元含む全員に送信 socket.broadcast.emit("piyopiyo", message) //Namespace内の送信元以外の全員に送信 nspace.to(socket.id).emit('info', '送信元のあなただけ') //Namespace内の特定のユーザーのみに送信(socket.idで送信元のみに送信) }) })
ちなみにクライアント側
var s = io.connect("ws://nyaaz.info:3000/hogehoge");
room
var port = 3000 var io = require('socket.io')(port) io.sockets.on("connection", function (socket) { socket.on("join room", function () { socket.join("room") //入室許可 io.sockets.in("room").emit("info", "全員に送信") //Room内の送信元含む全員に送信 socket.broadcast.to("room").emit("info", "送信元以外に送信"); //Room内の送信元以外の全員に送信 io.sockets.connected[socket.id].emit("info", "送信元のあなただけ") //Room内の特定のユーザーのみ(socket.idで送信元のみに送信) }) })