socket.io技術
訊息推送
- Server-Sent Events(SSE) 允許服務端推送資料到客戶端:效能較好、實時性較強,但存在一定的相容性問題,由於是在HTML5中提出的標準,IE全系瀏覽器都不支援,並且原生手機應用也沒有提供支援。
- comet技術
- HTTP輪詢
- nodejs socket實現實時訊息推送
在nodejs中主要牽涉到的模組:(net及net readline)
var net = require('net');
var server = net.createServer((socket) => {
var time = getTime();
//加入一個標誌
//加入到客戶列表中
var name = clients.add( socket );
//接收客戶發過來的資訊
socket.on('data', function(data) {
// guangbo(data, socket);// 接受來自客戶端的資訊
console.log('收到資料啦---' );
console.log(data.toString());
//傳送給所有人
clients.sendAll(socket,data);
});
//客戶關閉了連線
socket.on('close', function(data) {
console.log('客戶走了~: ' + socket.remoteAddress + ' ' + socket.remotePort);
//刪除客戶
clients.del(socket);
//傳送給所有人
clients.sendAll(socket, '有人走了!當前聊天人數:' + clients.length());
});
console.log('有人連了,客戶端數量:'+ clients.length() );
console.log('有人連了,客戶端數量:'+ clients.length() );
socket.write(time +' 歡迎進來聊天~ ' + name + '!\n' + '當前聊天人數:' + clients.length());
clients.sendAll(socket, '有人進來了!當前聊天人數:' + clients.length());
}).on('error', (err) => {
// handle errors here
throw err;
});
clients = new Object();
clients.list = [];
clients.sendAll = function(socket,data){
console.log('開始傳送給全部人啦!!');
for(var i=0 ; i < this.list.length ; i++){
if(socket !== this.list[i]){
var o = this.list[i];
//檢查socket是否可以寫
if (o.writable) {
console.log('傳送給:' + o.name);
o.write('-----\n' + getTime() + '\n' + socket.name + '說:\n');
o.write(data);
o.write('-----');
} else {
console.log('socket 失效了:' + o.name);
//socket斷開了什麼的,就不能傳送啦,需要刪除這個連線
this.del(o);
}
}
}
}
相關文章
- socket.io websocketWeb
- socket.IO通訊
- Socket.IO 入門
- socket.io 原理詳解
- socket.io通訊原理
- Socket.io 深入理解
- iOS Socket.io二三事iOS
- 找技術外包 技術加盟
- Socket.io開發注意點
- socket.io學習記錄
- Socket.IO IM通訊元件元件
- 雲技術是軟體技術,並非硬體技術
- 聊聊技術面試 | 掘金技術徵文面試
- 聊聊技術管理(一)入行之技術管理和技術專家
- socket.io入門示例參考
- 遊戲技術美術之<技術&美術>知識構成遊戲
- Docker技術( 容器虛擬化技術 )Docker
- mpls atm交換技術 ip技術——VecloudCloud
- 技術專題之-技術的概述
- 技術路線應該會的技術
- 技術宅找女朋友的技術分析
- 華為網路技術-三層交換技術
- 不重視技術,何談掌握核心技術?
- 好技術領導,差技術領導
- 好技術領導 差技術領導
- 技術社群中的非技術話題
- 理解socket.io(一)---相關的APIAPI
- 從HTML5 WebSocket到Socket.ioHTMLWeb
- Socket.IO打造基礎聊天室
- CSS技術CSS
- Ajax技術~~
- session技術Session
- JDBC技術JDBC
- Cookie技術Cookie
- ios技術iOS
- 前端技術前端
- Framework技術Framework
- Cognos技術