Web 套接字与 Socket.io

安装 socket.io-client

npm i socket.io-client --save

导入模块

import SocketIOClient from 'socket.io-client/dist/socket.io.js'

在构造函数中初始化

constructor(props){
    super(props);
    this.socket = SocketIOClient('http://server:3000');
  }

现在为了正确使用套接字连接,你也应该在构造函数中绑定你的函数。假设我们必须构建一个简单的应用程序,它将在每 5 秒后通过套接字向服务器发送一个 ping(将其视为 ping),然后应用程序将从服务器获得回复。为此,我们首先创建这两个函数:

_sendPing(){
    //emit a dong message to socket server
    socket.emit('ding');
}

_getReply(data){
    //get reply from socket server, log it to console
    console.log('Reply from server:' + data);
}

现在,我们需要在构造函数中绑定这两个函数:

constructor(props){
    super(props);
    this.socket = SocketIOClient('http://server:3000');

    //bind the functions
    this._sendPing = this._sendPing.bind(this);
    this._getReply = this._getReply.bind(this);
}

之后,我们还需要将_getReply 函数与套接字链接,以便从套接字服务器接收消息。为此,我们需要使用 socket 对象附加_getReply 函数。将以下行添加到构造函数中:

this.socket.on('dong', this._getReply);

现在,每当套接字服务器发出’dong’时,你的应用程序就能够接收它。