国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于socket.io和node.js搭建即時通信系統

2019-11-20 14:18:37
字體:
來源:轉載
供稿:網友

使用socket.io和nodejs搭建websocket服務器端

socket.io不僅可以搭建客戶端的websocket服務,而且支持nodejs服務器端的websocket。

下面讓我來介紹一下怎么安裝配置nodejs.

進入http://nodejs.org/#download下載msi文件。一直點next安裝。最后文件會自動安裝在C:/nodejs目錄下。

安裝完成后,會自動配置環境環境變量。如果沒有自動配置,自己手動在path處加上 ;C:/nodejs/。

安裝完成后,需要配置npm來管理node.js的模塊。

在window下安裝npm需要安裝git。

安裝完git后,打開gitbush。執行下面幾步:

git config --system http.sslcainfo /bin/curl-ca-bundle.crtgit clone --recursive git://github.com/isaacs/npm.gitcd npmnode cli.js install npm -gf

第一個是設置不會有任何提示,第二步會到github上下載npm會有下載文件和進度,第四步是安裝npm到node.js會復制幾個文件cmd文件和mode_modules文件夾到nodejs目錄。

這樣就配置好了npm。

如果需要安裝什么模塊直接輸入npm install ***。

沒有npm的或者windows用戶可以使用github下載socket.io并且放入到node_modules文件夾中,具體配置可以參考文章:《nodejs教程:配置nodejs.exe的windows目錄結構》

nodejs安裝socket.io

使用node插件管理包,運行下面的命令就可以安裝成功socket.io

npm install socket.io

用socket.io 實現的一個例子

客戶端代碼:

<html> <head>   <title></title>   <script src="../js/socket.io.client.js"></script>   <script type="text/javascript">     function doit() {       var socket = io.connect('http://localhost');       socket.on('news', function (data) {//接收到服務器發送過來的名為'new'的數據         console.log(data.hello);//data為應服務器發送過來的數據。         socket.emit('my new event', { my:'new data' });//向服務器發送數據,實現雙向數據傳輸       });       socket.on('other', function (data) {//接收另一個名為'other'數據,         console.log(data.hello);         socket.emit('event1', { my:'other data' });       });     }   </script> </head> <body> <button id='btn' onclick="doit()">click me</button> </body> </html> 

socket.io.client.js可以https://github.com/LearnBoost/socket.io-client下載到本地,在<script src="..">指向本機的js庫。

服務器用nodejs實現

server2.js

var http= require('http'), io= require('socket.io'), express= require('express'); var app = express.createServer(), io = io.listen(app); app.listen(80); io.sockets.on('connection', function (socket) {  socket.emit('news', { hello: 'world' });//監聽,一旦客戶端連接上,即發送數據,第一個參數'new'為數據名,第二個參數既為數據  socket.on('my other event', function (data) {//捕獲客戶端發送名為'my other event'的數據   console.log(data.my);  });  socket.emit('other', { hello: 'other world' });//發送另一個數據  socket.on('evnet1', function (data) {//捕獲另外一個數據   console.log(data.my);  }); }); 

測試結果,客戶端可正常顯示

服務器端顯示結果:

C:/java/Nodejs>node server2.js

注:代碼要和npm_module在同一個目錄下。不然會出現找不到socket.io module的錯誤。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 家居| 荔浦县| 廉江市| 莫力| 运城市| 疏勒县| 松阳县| 长宁区| 凤庆县| 曲靖市| 隆子县| 望城县| 南丰县| 莲花县| 微博| 新疆| 松阳县| 乡城县| 黄梅县| 汾阳市| 渑池县| 鹿邑县| 安国市| 名山县| 且末县| 宁强县| 军事| 民乐县| 招远市| 离岛区| 彭水| 扬中市| 和平区| 抚远县| 江华| 寻乌县| 宝鸡市| 卓资县| 庄浪县| 大同市| 江孜县|