WebSocket - 事件和动作

  • 简述

    有必要初始化从客户端到服务器的连接,以便它们之间进行通信。为了初始化连接,需要使用远程或本地服务器的 URL 创建 Javascript 对象。
    
    var socket = new WebSocket(“ ws://echo.websocket.org ”);
    
    上面提到的 URL 是一个公共地址,可以用于测试和实验。websocket.org 服务器始终处于启动状态,当它接收到消息并将其发送回客户端时。
    这是确保应用程序正常工作的最重要步骤。
  • WebSocket – 事件

    有四个主要的 WebSocket API事件-
    • Open
    • Message
    • Close
    • Error
    通过分别实现 onopen 、onmessageoncloseonerror函数等函数来处理每个事件。也可以借助 addEventListener 方法来实现。
    事件和功能的简要概述如下 -

    Open

    一旦客户端和服务器之间建立了连接,就会从 WebSocket 实例中触发 open 事件。它被称为客户端和服务器之间的初始握手。建立连接后引发的事件称为onopen

    Message

    消息事件通常发生在服务器发送一些数据时。服务器向客户端发送的消息可以包括纯文本消息、二进制数据或图像。每当发送数据时,就会触发onmessage函数。

    Close

    关闭事件标志着服务器和客户端之间的通信结束。在onclose事件的帮助下可以关闭连接。在onclose事件的帮助下标记通信结束后,服务器和客户端之间无法进一步传输任何消息。关闭事件也可能由于连接不良而发生。

    Error

    错误标记是在通信过程中发生的一些错误。它是在onerror事件的帮助下标记的。Onerror之后总是连接终止。每个事件的详细描述将在后续章节中讨论。
  • WebSocket – 动作

    事件通常在发生某些事情时触发。另一方面,当用户想要某事发生时采取行动。操作是通过用户使用函数的显式调用来进行的。
    Web Socket 协议支持两个主要操作,即 -
    • send( )
    • close( )

    send( )

    对于与服务器的某些通信,通常首选此操作,其中包括发送消息,其中包括文本文件、二进制数据或图像。
    借助 send() 操作发送的聊天消息如下 -
    
    // get text view and button for submitting the message
    var textsend = document.getElementById(“text-view”);
    var submitMsg = document.getElementById(“tsend-button”);
    //Handling the click event
    submitMsg.onclick = function ( ) {
       // Send the data
       socket.send( textsend.value);
    }
    
    注意- 只有在连接打开的情况下才能发送消息。

    close( )

    此方法代表再见握手。它完全终止连接,并且在重新建立连接之前不能传输任何数据。
    
    var textsend = document.getElementById(“text-view”);
    var buttonStop = document.getElementById(“stop-button”);
    //Handling the click event
    buttonStop.onclick = function ( ) {
       // Close the connection if open
       if (socket.readyState === WebSocket.OPEN){
          socket.close( );
       }
    }
    
    也可以借助以下代码片段故意关闭连接 -
    
    socket.close(1000,”Deliberate Connection”);