1. 程式人生 > >NodeJS - Socket.IO

NodeJS - Socket.IO

服務端:

io.sockets.on('connection', function (socket) {
	// 向當前客戶端傳送事件
	// 傳送給單個使用者
	socket.emit('message', "this is a test");
	
	// 傳送給所有端,不包括髮送端 
	// 廣播(不包含當前客戶端)
	socket.broadcast.emit('message', "hello,everyone");
	
	// 傳送給所有端,包括髮送端 
	// 廣播(包含當前客戶端)
	io.sockets.emit('message', "hello,all");
	
	// 傳送給所有在room1房間中的端,不包括髮送端 
	// 在房間廣播(不包含當前客戶端)
	socket.broadcast.to('room1').emit('message', 'nice game');
	
	// 傳送給所有在room1房間中的端,包括髮送端 
	// 在房間廣播(包含當前客戶端)
	io.sockets.in('room1').emit('message', 'cool game');
	// 傳送給指定客戶端(實現一)
	io.sockets.in(socket.id).emit('message', {data:"傳送給指定客戶端"});
	
	// 傳送給指定客戶端
	io.sockets.sockets[socketid].emit('message', 'for your eyes only');

	// 傳送給當前連線的 socket 客戶端
	io.emit('message', "this is a test");
 
	// 傳送給指定客戶端(實現二)
	io.sockets.connected[socket.id].emit('message',{data:"傳送給指定客戶端"});
});

知識點

io.on('connection', socket => {
	// 通過socket.handshake獲得了使用者請求資訊
	console.info(socket.handshake);
	// 獲取使用者ip
	console.info(socket.handshake);
	// 獲取socket id
	console.info(socket.id);
});