91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js 用socket實現聊天的示例代碼

發布時間:2020-09-16 02:34:19 來源:腳本之家 閱讀:119 作者:哈希 欄目:web開發

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

服務器搭建

app.js

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

//創建一個服務
const server = http.createServer(express);

//監聽服務端口
server.listen(8001,()=>{
  console.log("服務端已經啟動,請訪問 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> 

客戶端服務搭建與服務端通信

我們要建立服務端socket請求連接

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

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

index.js

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

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

app.js

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

將服務端的數據廣播到客戶端去

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

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

客戶端接收服務端廣播出來的數據

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁远县| 双柏县| 崇信县| 广德县| 涿鹿县| 平湖市| 南昌县| 沭阳县| 娄底市| 阳信县| 上栗县| 方城县| 海门市| 吴江市| 黑河市| 青海省| 雷州市| 萝北县| 临潭县| 万载县| 丰台区| 鹤峰县| 民和| 鄂伦春自治旗| 方城县| 黔江区| 文昌市| 武夷山市| 阳山县| 来凤县| 宁南县| 天全县| 和平县| 图们市| 法库县| 蓝田县| 将乐县| 峨山| 石门县| 长海县| 横峰县|