socket.io 學習筆記

概要:javascript

  • 前端頁面應用socketio庫html

  • 後端使用node 搭建前端

前端如何使用socket.iojava

<!--引入socket.io庫 -->
<script type="text/javascript" src="./socket.io/socket.io.js"></script>
<script type="text/javascript">
    //鏈接服務器
    var socket = io.connect('http://localhost');
    //使用on函數建立news時間的監聽
    socket.on('news', function (data) {
        console.log(data);
        //使用emit向服務器提交事件
        socket.emit('other event', { my: 'data' });
    });
</script>

後端node

var chatServer = require('./lib/chat_Server.js');
//使用listen()在http服務器上監聽
chatServer.listen(server);

chat_server後端

exports.listen=function(server){
	io = socketio.listen(server);
	io.set('log level' , 1);
	io.sockets.on('connection' , function(socket){
	        //各個功能輔助函數,用於完成聊天室的具體功能
		guestNumber=assginGuestName(socket,guestNumber,nickName,nameUsed);
		joinRoom(socket,'Lobby');
		handleMessageBroadcasting(socket,nickName);
		handleNameChangeAttempts(socket,nickName,nameUsed);
		handleRoomJoining(socket);
		socket.on('rooms',function(){
			socket.emit('rooms',io.sockets.manager.rooms);
		});
		handleCilentDisconnection(socket,nickName,nameUsed);
	});
};

other:服務器

向同一個集合中的鏈接廣播事件socket

//使用broadcast廣播
socket.broadcast.to(room).emit("message",{"text":nickName[socket.id]+"has joined "+room+"."});

自帶connect,message,disconnect三個事件,容許自定義事件
函數

尚待補充。。。
ui

相關文章
相關標籤/搜索