javascript - 设置 React 组件以监听 socket.io

标签 javascript express reactjs socket.io

我希望我的 React 组件能够监听来自 socket.io 的事件。如果我的 HTML 文件包括:

<script src="socket.io/socket.io.js"></script>

然后组件的constructor()有:

this.socket = io(); // eslint-disable-line no-undef

HTML 文件从我的 Express 服务器中检索到正确的 socket.io 客户端代码,一切正常。

但这感觉太俗气了。我讨厌依赖全局窗口 namespace 来查找 io() 函数。让 React 组件通过 socket.io 连接到服务器的最佳实践是什么?谢谢。

最佳答案

如果您使用 Webpack 或 Browserify 之类的打包工具,您可以使用 socket.io-client .

例如:

const io = require('socket.io-client');

class MyComponent extends React.Component {
  constructor(...args) {
    super(...args);
    this.socket = io();
  }
  ...
}

关于javascript - 设置 React 组件以监听 socket.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39187049/

相关文章:

javascript - 基于属性的动态限制队列的数据结构/算法

node.js - 发布表单数据时请求正文为空

javascript - 如何在 map 期间将特定项目推送到新数组中?

javascript - 无法呈现两个相同的 React 组件,特别是 react-google-chart

javascript - JQuery AJAX - 发送带有附加文件的 JSONP 表单

javascript - Vue JS - 有条件地在一个组件中显示信息

javascript - Node.js/MongoDB : can't catch error from Cursor. 映射回调在此回调之外

javascript - 数组 Find() 方法在搜索有关 URL 参数的数据时始终返回 'undefined'

node.js - jade 和客户端 javascript

javascript - 使用 JSX 运行 HTML 页面时出现空白页面