javascript - 如何在 ReactJS 中使用 websocket?

标签 javascript reactjs websocket

第一次学习ReactJS,遵循官方文档并了解了组件的工作原理,现在我想与websockets连接,问题就从这里开始了。为什么这这么难实现?

// ReactJS
ReactDOM.render(
  <div className="media">
    <img className="media-figure" src={"kitten.jpg"}  width="48" height="48" />
    <p className="media-body">Hello</p>
  </div>,
  document.getElementById('chat-list')
);


// Socket connection
socket = new WebSocket("ws://" + window.location.host + "/echo");

socket.onmessage = function(e) {
    alert(e.data);
}
socket.onopen = function() {
    socket.send("hello world");
}
// Call onopen directly if socket is already open
if (socket.readyState == WebSocket.OPEN) socket.onopen();

我想要的是,当 onmessage 时,我需要渲染该 media div。

最佳答案

您需要在 socket.onmessage 回调中调用 ReactDOM.render 方法。

对于更大的应用程序,我建议使用 React 团队建议的基于 Flux 的架构。最流行的实现之一是 Redux,它非常容易学习和使用。 您可以在 Flux 的概述页面上找到更多信息(我推荐他们的视频): https://facebook.github.io/flux/docs/overview.html

关于javascript - 如何在 ReactJS 中使用 websocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39851013/

相关文章:

node.js - npm build 如何通过变量或脚本更改 package.json - 主页值

javascript - ReactJS - 使用 .setState 更改嵌套值

java - 用于实时应用程序的 Websockets 与 HTTP Rest

websocket - 响应 WebSocket 升级请求

javascript - 在 div 而不是输入上使用 AngularJS ngKeyup

javascript - 如何根据其他组件的事件更新组件 URL

javascript - 给 svg :g element in D3. js 添加一个 title 属性

c# - Azure 和 SignalR : System.Net.Sockets.SocketException:尝试以访问权限禁止的方式访问套接字

javascript - 如何对齐基于 DOM 居中 div 的 SVG 网格

javascript - Angular:如何为图像创建自定义管道?