socket和websocket

本文记录对socket,websocket,MQTT,http的简单理解

    • TCP/IP网络四层模型

websocket,MQTT,http都位于应用层,是应用层协议,应用层是TCP/IP协议的第一层,是直接为应用进程提供服务的。

socket并不是一个协议,它位于传输层和应用层之间,英文翻译过来就是套接字,是抽象出来的一种概念。socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在socket接口后面

2、socket和websocket

这二者并没有太大的关系,很多时候会提到socketAPI

在nodejs中,本身就是支持socketAPI的

比如下面的例子,用Nodejs搭建一个简单的httpserver服务器,使用socketAPI来解析http协议

当有应用连接到该服务器的时候,通过socketAPI可以查看请求报文

const net = require("net")//commonjs引入
const server = net.createServer((c) => { });

//监听80端口
server.listen(8001);

server.on("connection", function (socket) {//匿名函数接收是socket,要和下面一致
     socket.on("data", function (data) {
        console.log(data.toString())//这里必须进行转换,打印出来是请求报文
        
        //响应客户端的请求,其实就是响应报文
        socket.write('HTTP/1.1 200 OK\r\n')
        socket.write('Content-Type: text/html; charset=UTF-8\r\n\r\n')

        socket.write(`<h1>welcome</h1><a href="/admin">进入管理后台</a>`)
        socket.end()
     })
})

3、websocket和MQTT

这两者都是应用层的协议,是可以直接使用的

websocket是更底层的东西,不需要搭建服务器,可以进行简单的通信

MQTT是基于websocket,MQTT功能更多,适合于构建更复杂的应用,通常需要构建一个服务器,也有免费的,mqtt://test.mosquitto.org,可以自己连接上测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值