本項(xiàng)目的github地址粟誓,喜歡的同志可以star或者fork
使用方法(前提是安裝了node):
本地使用:下載本項(xiàng)目到本地奏寨,解壓,進(jìn)入項(xiàng)目目錄鹰服,輸入npm install,等待安裝完成病瞳,輸入npm start,在瀏覽器中打開localhost:8000
服務(wù)器使用:
在public的socket.js文件中找到以下代碼:
var socket = io.connect('http://localhost:8000');
把上面的localhost改為你服務(wù)器的ip地址即可(ip訪問情況下改為ip地址,域名訪問改為你的域名悲酷,但是注意 https://yourdomain * 訪問目前是不行的,需要是http套菜,原因恐怕就是io.connect('http://localhost:8000') 里面使用的是http),剩下的跟本地操作無異
核心
本項(xiàng)目的核心是websocket協(xié)議
websocket分客戶端和服務(wù)端兩部分舔涎,在本項(xiàng)目中笼踩,socket.js是客戶端腳本,
server.js是服務(wù)端腳本亡嫌。在本項(xiàng)目中使用了websocket的socket.io,這是
websocket很方便快捷的一種使用方式
在html中插入socket.io
<script src="/socket.io/socket.io.js"></script>
客戶端連接服務(wù)端:
var socket = io.connect('http://localhost:8000');
服務(wù)端連接客戶端:
io.sockets.on('connection', function (socket) {
//
})
客戶端觸發(fā)服務(wù)端的systemIn事件:
socket.emit('systemIn', username);
服務(wù)端監(jiān)聽systemIn事件:
socket.on("systemIn", function(data) {
//
})
不管是服務(wù)器還是客戶端掘而,socket.io提供兩個(gè)核心方法:emit方法用于發(fā)送消息挟冠,on方法用于監(jiān)聽對(duì)方發(fā)送的消息。以此類推袍睡,其他不贅言知染。
demo
最后奉上本次的demo地址:聊天室