websocket

Posted zmiaozzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了websocket相关的知识,希望对你有一定的参考价值。

什么是websocket?

不错的介绍:https://www.zhihu.com/question/20215561

websocket是一种持久化的协议,实现了浏览器和服务端的全双工通信;

握手阶段与HTTP协议相同,返回状态码101(switching protocols);

握手阶段完成之后,按照websocket协议进行通信

 

应用场景:

浏览器与服务端需要实时通信的场景,以前的解决方式:ajax轮询、HTTP长连接、Flash等。

 

实现:

浏览器端

const ws = new WebSocket(\'ws://localhost:8080\');

ws.onopen = function (evt) {
    console.log(\'connection open...\');
    ws.send(\'hello websocket\');
}

ws.onmessage = function (evt) {
    console.log(\'frontend received: \' + evt.data);
}

ws.onclose = function (evt) {
    console.log(\'connection closed...\');
}

 

 

node端

首先需要安装library:

  • ws
  • websocket-node
  • socket.io
  • engine.io
  • sockjs 

 以ws为例:

const WebSocket = require(\'ws\');

const ws = new WebSocket.Server({port: 8080});

ws.on(\'connection\', function (ws) {
    ws.on(\'message\', function (msg) {
        console.log(\'backend received: \'+ msg);
    })

    ws.send(\'something\');

})

 

以上是关于websocket的主要内容,如果未能解决你的问题,请参考以下文章

“未捕获的类型错误:无法在 Websocket Angular JS 上读取未定义的属性‘延迟’”

websocket弹簧启动设置

WebSocket - 关闭握手 Gorilla

WebSocket 在 1000 条消息后关闭

使用 FFmpeg 通过管道输出视频片段

低延迟 websocket html 5 游戏的数据包大小