Socket 为客户端和服务器提供了双向通信机制 ,即服务器接受消息并把消息推送给连接了服务器的客户端。
安装
npm install --save socket.io
npm install --save express
创建一个server.js
//引用
const express = require('express')
const socketIo = require('socket.io')
//创建express实例,相当于开启一个web服务器
const app = express()
//创建路由
app.get('/', (req, res) => {
res.sendFile(__dirname + '/startWebSocket/index.html')
})
//启动web服务
server = app.listen(3000);
let index = 0;//没有登录,所以用数字代表访问服务端的客户端
const io = socketIo.listen(server)//绑定于3000端口
//事件:'连接'在客户端连接时被触发
io.on("connection", socket => {
console.log('有客户端连接进来了');
//console.log(socket);
//给当前实例添加个 username
socket.username = ++index;
// 给其他实例发送消息 即以广播的形式
socket.broadcast.emit("message", {
username: 'System',
message: `${socket.username} 加入了聊天室`
});
console.log(socket.username);
//监听客户端发来的消息
socket.on("message", message => {
socket.emit("message", {
username: socket.username,
message: message
});
// 给其他人发
socket.broadcast.emit("message", {
username:socket.username,
message: message
});
});
})
创建一个index.html
const socket = io();
// 1. 监听服务端发送过来的消息
socket.on("message", data => {
let html = `
`;
$('#messages').append(html)
});
$('#btn').on('click',function(){
var value = $('#information').val();
socket.emit("message",value)
})