(十一) Express 配合websocket

(一) 本节知识点

  • 讲述webSocket

  • 实现聊天室

(二) websocket讲述

  • HTTP协议是无状态的,服务器只会响应来自客户端的请求,但是它与客户端之间不具备持续连接。

  • 我们可以非常轻松的捕获浏览器上发生的事件(比如用户点击了盒子),这个事件可以轻松产生与服务器的数据交互(比如Ajax)。但是,反过来却是不可能的:服务器端发生了一个事件,服务器无法将这个事件的信息实时主动通知它的客户端。只有在客户端查询服务器的当前状态的时候,所发生事件的信息才会从服务器传递到客户端。

  • WebSocket协议能够让浏览器和服务器全双工实时通信,互相的,服务器也能主动通知客户端了。

  • WebSocket的原理非常的简单:利用HTTP请求产生握手,HTTP头部中含有WebSocket协议的请求,所以握手之后,二者转用TCP协议进行交流(QQ的协议)。现在的浏览器和服务器之间,就是QQ和QQ服务器的关系了。

(三) 在这里要使用express框架和一个包叫做socket.io 首先所有的文件必须在服务器上

  • (1) 下载socket.io这个包
npm install socket.io --save
  • (2)服务器端代码
//socket.io公式:
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on("connection",function(socket){
    socket.on("chat",function(msg){
        //把接收到的msg原样广播
        console.log(msg);
        io.emit("chat",msg); //要是socket就是点对点
    });
});
//这里千万注意是http在监听
http.listen(3000);
  • (3)客户端代码




    
    模拟短信调用






emit表示发送 on表示监听
以上就是最浅显的基于websocket的聊天室

你可能感兴趣的:((十一) Express 配合websocket)