欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年10月17日 10:45:23   作者:哈希  
本篇文章主要介紹了node.js 用socket實(shí)現(xiàn)聊天的示例代碼,小編覺得挺不錯(cuò)的,現(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)啟動(dòng),請(qǐ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請(qǐng)求連接

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ā)送請(qǐng)求
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));
}); 

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

相關(guān)文章

  • node.js操作mongodb簡(jiǎn)單示例分享

    node.js操作mongodb簡(jiǎn)單示例分享

    MongoDB是基于Javascript語(yǔ)言的數(shù)據(jù)庫(kù),存儲(chǔ)格式是JSON,而Node也是基于JavaScript的環(huán)境(庫(kù)),所以node和mongoDB的搭配能減少因?yàn)閿?shù)據(jù)轉(zhuǎn)換帶來的時(shí)間空間開銷。今天我們來看看如何通過node.js來操作MongoliaDB
    2017-05-05
  • node.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法

    node.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法

    下面小編就為大家?guī)硪黄猲ode.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • NodeJs版本過高無法啟動(dòng)Vue項(xiàng)目報(bào)錯(cuò)的幾種解決方法

    NodeJs版本過高無法啟動(dòng)Vue項(xiàng)目報(bào)錯(cuò)的幾種解決方法

    在開發(fā)vue項(xiàng)目時(shí),我們通常使用nodejs作為項(xiàng)目的運(yùn)行環(huán)境,但是有時(shí)候,由于nodejs版本過高,可能會(huì)導(dǎo)致vue項(xiàng)目啟動(dòng)報(bào)錯(cuò),這篇文章主要給大家介紹了關(guān)于NodeJs版本過高無法啟動(dòng)Vue項(xiàng)目報(bào)錯(cuò)的幾種解決方法,需要的朋友可以參考下
    2023-12-12
  • 詳解nodeJS中讀寫文件方法的區(qū)別

    詳解nodeJS中讀寫文件方法的區(qū)別

    本篇文章主要介紹了詳解nodeJS中讀寫文件方法的區(qū)別,nodejs的fs模塊針對(duì)讀操作為我們提供了readFile,read, createReadStream三個(gè)方法,有興趣的可以了解一下。
    2017-03-03
  • 深入學(xué)習(xí)nodejs中的async模塊的使用方法

    深入學(xué)習(xí)nodejs中的async模塊的使用方法

    本篇文章主要介紹了nodejs中的async模塊的使用方法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • Node.js和Express簡(jiǎn)單入門介紹

    Node.js和Express簡(jiǎn)單入門介紹

    本篇文章主要介紹了Node.js和Express簡(jiǎn)單入門介紹,詳細(xì)介紹如何用Node.js和Express搭建一個(gè)web服務(wù)器,有興趣的可以了解一下。
    2017-03-03
  • 詳解Nodejs 通過 fs.createWriteStream 保存文件

    詳解Nodejs 通過 fs.createWriteStream 保存文件

    本篇文章主要介紹了Nodejs 通過 fs.createWriteStream 保存文件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解

    Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解

    這篇文章主要介紹了Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • node 命令方式啟動(dòng)修改端口的方法

    node 命令方式啟動(dòng)修改端口的方法

    今天小編就為大家分享一篇node 命令方式啟動(dòng)修改端口的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • node.js使用mongoose操作數(shù)據(jù)庫(kù)實(shí)現(xiàn)購(gòu)物車的增、刪、改、查功能示例

    node.js使用mongoose操作數(shù)據(jù)庫(kù)實(shí)現(xiàn)購(gòu)物車的增、刪、改、查功能示例

    這篇文章主要介紹了node.js使用mongoose操作數(shù)據(jù)庫(kù)實(shí)現(xiàn)購(gòu)物車的增、刪、改、查功能,結(jié)合實(shí)例形式詳細(xì)分析了node.js使用mongoose框架操作MongoDB數(shù)據(jù)實(shí)現(xiàn)購(gòu)物車增刪改查相關(guān)技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-12-12

最新評(píng)論