socket.io简介
Socket.IO是一个开源的WebSocket库,它通过Node.js实现WebSocket服务端,同时也提供客户端JS库。Socket.IO支持以事件为基础的实时双向通讯,它可以工作在任何平台、浏览器或移动设备。
Socket.IO支持4种协议:WebSocket、htmlfile、xhr-polling、jsonp-polling,它会自动根据浏览器选择适合的通讯方式,从而让开发者可以聚焦到功能的实现而不是平台的兼容性,同时Socket.IO具有不错的稳定性和性能。
多房间聊天
socket.io提供rooms和namespace的API
用rooms的API就可以实现多房间聊天了,总结出来无外乎就是:join/leave room 和 say to room
1 | // join和leave |
代码 github
新建文件夹chatapp-demochatapp-demo/package.json
1 | { |
执行 npm install
服务端代码
增加文件 chatapp-demo/app.js
1 | var express = require('express'); |
######客户端代码
新增chatapp/views/room.hbs
1 | <!DOCTYPE html> |
新增 chatapp/public/index.html
1 | <!DOCTYPE html> |
运行效果
代码已放在github https://github.com/wuyanxin/chatapp-demo.git
参考:
http://socket.io/docs/rooms-and-namespaces/
http://blog.fens.me/nodejs-socketio-chat/
http://www.jianshu.com/p/d9b1273a93fd