如何使用WebSocket发送和接收数据

1,722 阅读2分钟
WebSocket是一种允许通过保持服务器端和用户端始终连接来进行双向通信的技术,所以WebSocket既可以发送数据也可以接收数据,本篇文章我们就来看看如何使用WebSocket发送和接收数据。

我们先来看一下如何发送文本数据?

使用免费提供的echo.websocket.org作为样本

具体示例如下

var connection = new WebSocket('wss://echo.websocket.org');

  

connection.send('样本数据');

在此示例中,以看到正在创建WebSocket实例并使用send()方法发送数据。

但是,通常应该在任意时间传输数据。

因此,如果要通过单击按钮发送在表单中输入的数据,可以按如下方式编写。

btn.addEventListener('click', function(e) {

  var text = document.getElementById('text');

  

  connection.send(text.value);

})

在这个例子中,我们得到输入表单的字符串并将其应用于send()的参数。

这样,您就可以发送任意文本数据。

如何接收文本数据?

这次使用的测试服务器的Echo.websocket.org将按原样返回传输的数据。

代码如下

connection.onmessage = function(e) {

    console.log(e.data);

};

我们使用onmessage()事件,该事件用于接收来自四种类型的事件处理的消息。

虽然这是一个简单的描述,但仅此一项就可以接收从服务器返回的数据。

顺便说一下,当你一起使用close()方法时,编码如下

connection.onmessage = function(e) {

    console.log(e.data);

    connection.close();

};

在这种情况下,在收到数据后立即断开通信。

此时,需注意的是如果close()断开通信,除非再次与WebSocket建立连接,否则无法通信!

以上就是如何使用WebSocket发送和接收数据的详细内容

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处