总结
介绍一下websocket一些基础方法
因为搭建聊天室的一些内容需要用到vue所以自己就先了解了基础的内容
介绍
websocket是一种网络协议 全双工通信 位于osi的应用层
特点
tcp链接
双向通信
无同源限制
原生
var ws=new WebSocket("ws://127.0.0.1:9000")
ws.onopen=function(){
ws.send("hello")
}
ws.onmessage=function(msg){
console.log(msg);
}
ws.onclose=function(){
console.log("conction is none")
}
const WebSocket=require("ws");
const wss=new WebSocket.Server({port:9000});
wss.on("connection",function connection(ws){
console.log("star");
//接收信息
ws.on("message",function(msg){
console.log(msg);
})
//发送信息
ws.send("Message from sever")
})
原生的形式。WebSocket是一种在单个TCP连接上进行全双工通信的协议,它提供了更低延迟、更高效的实时通信能力。
基于库去实现通信
<script>
var socket=io();
function sendMessage(){
let inputuser=document.getElementById("inputuser");
var value=inputuser.value;
socket.emit("chatEvent",value)
}
socket.on("message",function(msg){
console.log(msg);
})
</script>
const app=require("express")();
const http=require("http").createServer(app);
const io=require("socket.io")(http);
app.get("/",function(req,res){
console.log(__dirname);
res.sendFile(__dirname+'/index2.html')
})
io.on("connection",function(socket){
console.log("a sock is connetion");
socket.on("chatEvent",function(msg){
console.log("msg from clicent"+msg);
// socket.send("sever says"+msg);
//广播
socket.broadcast.emit("severMsg",msg)
})
})
http.listen(9000,function(){
console.log("9000star");
})
代码使用了Express和Socket.IO库来建立基于HTTP协议的实时通信。。Socket.IO是一个用于处理实时、双向、基于事件的通信的JavaScript库。
区别:
webSocket协议提供了更低延迟、更高效的实时通信能力,适合需要快速实时响应的场景;而Socket.IO可以根据浏览器和服务器的支持情况选择最佳的传输机制,兼容性更好,但相对于WebSocket可能有一些性能上的损失
总结及下周
到时候学完vue可以自己用websocket写个聊天室。这周主要是复习java的 下周可以复习一下es6