nodejs搭建websocket伺服器小結
對nodejs和js瞭解不深,就是專案上用到,臨時即學即用,只學了websocket幾個api而已,做個小結,因為websocket還是大有前途的
1、環境搭建
(1)安裝node
直接下載原始碼,./configure && make && make install三部曲
(2)安裝node-server-websocket模組
先要確保/usr/bin/目錄下有node可執行檔案
npm install -g ws
(3)將新裝模組Link給node可執行程式
sudo ./npm link ws
2、服務端指令碼
(1)建立一個伺服器型別,指定協議為ws
var wsServer = require('ws').Server;
(2)例項化一個webServer伺服器,並設定監聽埠
wss = new wsServer({port:XXX});
(3)新增伺服器端的事件處理——客戶端請求連線事件connection
wss.addListener('connection',function handle(conn)); //conn代表伺服器和客戶端之間的連線,對於伺服器來說,conn就是客戶端
(4)新增伺服器對客戶端訊息事件的處理——客戶端傳送message
conn.addListener('message',function handle(msg));
var conns = new Array();
var ws = require('ws').Server;
var server = new ws({port:9090});
server.addListener('connection', function(conn){
console.log('connection....');
conns.push(conn);
conn.addListener('message',function(msg){
console.log(msg);
for(var i=0; i<conns.length; i++){
if(conns[i]!=conn){
conns[i].send(msg);
}
}
});
});
console.log('running......');
3、客戶端指令碼(javascript實現)
(1)例項化一個websock客戶端連線
var ws = new WebSocket(url); //url = "ws://ip:port/XXX"
(2)按需實現websocket的事件函式
ws.onopen = function(event){ ... };
ws.close = function(event){ ... };
ws.onerror = function(event){ ... };
ws.onmessage = function(event){ ... }; //接收資料的回撥
(3)傳送資料
ws.send(string);
完整的簡單例項
<html>
<body>
<p>Test Client</p>
<br>
<script>
var socket = new WebSocket("ws://......");
document.write("Clinet is running...");
socket.onmessage = function(event){
document.write("recving data");
};
socket.onopen = function(event){
alert("websocket is open");
};
socket.onerror = function(event){
document.write("websocket create failed");
};
window.onbeforeunload = function(){
socket.send("Client is Leaving");
return "Are you sure";
};
</script>
</body>
</html>
相關文章
- nodejs搭建web伺服器NodeJSWeb伺服器
- 搭建 nodeJS 伺服器之(2)sequelizeNodeJS伺服器
- 微信小程式和伺服器通訊-WebSocket微信小程式伺服器Web
- Nginx支援WebSocket反向代理-學習小結NginxWeb
- netty系列之:使用netty搭建websocket伺服器NettyWeb伺服器
- Laravel + 微信小程式 websocket 搭建廣播訊息系統Laravel微信小程式Web
- NodeJS實現websocket代理機制NodeJSWeb
- 基於websocket與nodejs-websocket的簡單聊天室WebNodeJS
- websocket使用小例子Web
- Nodejs教程19:WebSocket之一:使用Socket.io建立WebSocket應用NodeJSWeb
- Nodejs快速搭建簡單的HTTP伺服器詳細教程。NodeJSHTTP伺服器
- nodejs版的websocket壓力測試工具NodeJSWeb
- nodejs環境搭建NodeJS
- 前端部署伺服器小結前端伺服器
- Android技能樹 — 網路小結(4)之socket/websocket/webserviceAndroidWeb
- nodejs搭建web專案NodeJSWeb
- 用nodejs-websocket開發一個websoket服務NodeJSWeb
- 微信小程式——搭建自己的Https伺服器微信小程式HTTP伺服器
- 微信小程式websocket聊天室微信小程式Web
- nestjs搭建HTTP與WebSocket服務JSHTTPWeb
- 前端架構師破局技能,NodeJS 落地 WebSocket 實踐前端架構NodeJSWeb
- vue websocket nodeJS 進行實時通訊踩到的坑VueWebNodeJS
- nodejs web伺服器建立NodeJSWeb伺服器
- 如何用小鳥雲伺服器搭建Typecho站點?伺服器
- 建站教程|小鳥雲伺服器搭建Wordpress站點伺服器
- 在centos上搭建《異星工廠》(Factorio)伺服器端小記CentOS伺服器
- 利用nodejs搭建 https 代理伺服器並實現中間人攻擊NodeJSHTTP伺服器
- nodejs面試總結NodeJS面試
- app後端伺服器開發小結APP後端伺服器
- NodeJS安裝與環境搭建NodeJS
- 基於 Swoole 搭建 WebSocket 服務詳解Web
- Ubuntu搭建web伺服器系列之Tomcat(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)UbuntuWeb伺服器TomcatJDKMySqlNginxRedisNodeJS
- Ubuntu的web伺服器搭建系列之Redis(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)UbuntuWeb伺服器RedisJDKTomcatMySqlNginxNodeJS
- 手把手教你搭建微信小程式伺服器(HTTPS)微信小程式伺服器HTTP
- Nginx 伺服器配置支援SignalR (WebSocket)Nginx伺服器SignalRWeb
- JavaScript 伺服器推送技術之 WebSocketJavaScript伺服器Web
- nodejs實現微信小程式支付功能及相關問題總結NodeJS微信小程式
- nodejs應用連結NodeJS