最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js 用socket實(shí)現(xiàn)聊天的示例代碼

 更新時(shí)間:2017年10月17日 10:45:23   作者:哈希  
本篇文章主要介紹了node.js 用socket實(shí)現(xiàn)聊天的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

本文介紹了node.js 用socket實(shí)現(xiàn)聊天的示例代碼,分享給大家,也給自己留個(gè)筆記,具體如下:

服務(wù)器搭建

app.js

const http = require("http");
const express = require("./express");

//創(chuàng)建一個(gè)服務(wù)
const server = http.createServer(express);

//監(jiān)聽服務(wù)端口
server.listen(8001,()=>{
  console.log("服務(wù)端已經(jīng)啟動,請?jiān)L問 http://localhost:8001");
}); 

express.js

const url=require("url");
const fs=require("fs");

function express(req,res){
  var urlObj=url.parse(req.url);
  //console.log(urlObj);

  var filePath="./www"+urlObj.pathname;
  var content="not found";
  if(fs.existsSync(filePath)){
    content=fs.readFileSync(filePath);
  }
  
  res.end(content.toString());
}


module.exports=express; 

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
   <meta charset="utf-8"/>
    <title>Socket.IO chat</title>
    <style>
     * { margin: 0; padding: 0; box-sizing: border-box; }
     body { font: 13px Helvetica, Arial; }
     form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
     form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
     form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
     #messages { list-style-type: none; margin: 0; padding: 0; }
     #messages li { padding: 5px 10px; }
     #messages li:nth-child(odd) { background: #eee; }
    </style>
   </head>
   <body>
    <ul id="messages"></ul>
    <form action="">
     <input id="m" autocomplete="off" /><button>Send</button>
    </form>

    <script src="js/lib/jquery-1.11.1.js"></script>
    <script src="js/lib/socket.io.js"></script> 
    <script src="js/index.js"></script>
   </body>
</html> 

客戶端服務(wù)搭建與服務(wù)端通信

我們要建立服務(wù)端socket請求連接

io.on('connection', function(socket){
  console.log('a user connected');

  //斷開連接
  socket.on('disconnect', function(){
    console.log('user disconnected');
  });
}); 

index.js

//客戶端建立連接 
var socket = io(); 
客戶端向服務(wù)端發(fā)送請求
index.js

$('form').submit(function(){
  //觸發(fā)事件
  socket.emit('chat message', $('#m').val());
  $('#m').val('');
  return false;
 });  

app.js

//接收客戶端的信息
socket.on('chat message', function(msg){
  console.log('message: ' + msg);
}); 

將服務(wù)端的數(shù)據(jù)廣播到客戶端去

socket.on('chat message', function(msg){
    console.log('message: ' + msg);

    socket.broadcast.emit("clientE",msg);
  }); 

客戶端接收服務(wù)端廣播出來的數(shù)據(jù)

socket.on('clientE', function(msg){
  $('#messages').append($('<li>').text(msg));
}); 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • node.js中RPC(遠(yuǎn)程過程調(diào)用)的實(shí)現(xiàn)原理介紹

    node.js中RPC(遠(yuǎn)程過程調(diào)用)的實(shí)現(xiàn)原理介紹

    這篇文章主要介紹了node.js中RPC(遠(yuǎn)程過程調(diào)用)的實(shí)現(xiàn)原理介紹,本文基于一個(gè)簡單的RPC庫nodejs light_rpc實(shí)現(xiàn),需要的朋友可以參考下
    2014-12-12
  • 使用socket.io實(shí)現(xiàn)簡單聊天室案例

    使用socket.io實(shí)現(xiàn)簡單聊天室案例

    這篇文章主要介紹了使用socket.io實(shí)現(xiàn)簡單聊天室案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 安裝Node.js并啟動本地服務(wù)的操作教程

    安裝Node.js并啟動本地服務(wù)的操作教程

    今天小編就為大家分享一篇安裝Node.js并啟動本地服務(wù)的操作教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Nodejs本地部署DeepSeek的教程詳解

    Nodejs本地部署DeepSeek的教程詳解

    DeepSeek作為一款開源且性能強(qiáng)大的大語言模型,提供了靈活的本地部署方案,讓用戶能夠在本地環(huán)境中高效運(yùn)行模型,同時(shí)保護(hù)數(shù)據(jù)隱私,本文主要為大家詳細(xì)介紹了Nodejs本地部署DeepSeek的相關(guān)知識,需要的可以了解下
    2025-02-02
  • Nodejs對postgresql基本操作的封裝方法

    Nodejs對postgresql基本操作的封裝方法

    今天小編就為大家分享一篇Nodejs對postgresql基本操作的封裝方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Node.js中的模塊機(jī)制學(xué)習(xí)筆記

    Node.js中的模塊機(jī)制學(xué)習(xí)筆記

    這篇文章主要介紹了Node.js中的模塊機(jī)制學(xué)習(xí)筆記,本文講解了CommonJS模塊規(guī)范、Node模塊實(shí)現(xiàn)過程、模塊調(diào)用棧、包與NPM等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • node.js文件的復(fù)制、創(chuàng)建文件夾等相關(guān)操作

    node.js文件的復(fù)制、創(chuàng)建文件夾等相關(guān)操作

    這篇文章主要給大家介紹了node.js文件的復(fù)制、創(chuàng)建文件夾等相關(guān)操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Node.js程序中的本地文件操作用法小結(jié)

    Node.js程序中的本地文件操作用法小結(jié)

    這篇文章主要介紹了Node.js程序中的本地文件操作用法小結(jié),作為運(yùn)行在服務(wù)器端的JavaScript解釋器,Node中自然擁有操作本地文件的方法,需要的朋友可以參考下
    2016-03-03
  • 詳解nvm管理多版本node踩坑

    詳解nvm管理多版本node踩坑

    這篇文章主要介紹了詳解nvm管理多版本node踩坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Node.js?queryString?解析和格式化網(wǎng)址查詢字符串工具使用

    Node.js?queryString?解析和格式化網(wǎng)址查詢字符串工具使用

    這篇文章主要為大家介紹了Node.js?queryString?解析和格式化網(wǎng)址查詢字符串工具使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評論

崇州市| 长葛市| 瑞安市| 奎屯市| 厦门市| 肇源县| 余姚市| 辉南县| 新绛县| 城市| 怀来县| 商都县| 赤城县| 吴堡县| 杭州市| 拜泉县| 蕲春县| 洮南市| 莎车县| 遂溪县| 瑞安市| 巴青县| 马鞍山市| 枞阳县| 定兴县| 商南县| 政和县| 通化市| 旺苍县| 辽源市| 嘉黎县| 宜兴市| 大同县| 都安| 郓城县| 怀远县| 拉孜县| 灵川县| 扶余县| 东莞市| 密云县|