首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >浏览器客户端中的reactjs websocket :使用效果挂钩内的套接字连接

浏览器客户端中的reactjs websocket :使用效果挂钩内的套接字连接
EN

Stack Overflow用户
提问于 2021-12-20 20:34:55
回答 1查看 431关注 0票数 1

我有一个reactjs客户端,它连接到websocket服务器,但是当我试图在一个效果钩子之外初始化它时,websocket对象是未定义的,但是当它在一个效果钩子中时它会初始化它。

就像这样:

代码语言:javascript
复制
effect(()=>{
  connection = new WebSocket(url)
  //do some stuff
})

问题是,我想根据reactjs应用程序中发生的事件发送东西。

代码语言:javascript
复制
effect(()=>{
  connection.send(messages)
},[messages])

在这一点上,连接是未定义的,尽管当时正在建立连接,但我只能假设,由于我必须在浏览器中使用本机WS,所以我必须在其他地方初始化websocket,但我不知道在哪里

EN

Stack Overflow用户

发布于 2021-12-20 21:03:50

维护连接的状态变量。只创建一次并具有有效的紧密连接。(要运行一次的空依赖数组)

代码语言:javascript
复制
const [connection, setConnection] = useState(null);

useEffect(() => {
  connection = new WebSocket(url);
  setConnection(connection);
  return () => connection.close()
}, [])

useEffect(() => {
  connection.send(messages)
}, [messages])
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70427715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档