小编Som*_*ium的帖子

如何在 gRPC 中从服务器向客户端广播?

我现在正在 gRPC 中创建一个小型聊天应用程序,我遇到了一个问题,如果用户想作为客户端连接到 gRPC 服务器,我想向所有其他连接的人广播该事件已发生客户。

我正在考虑使用某种观察者,但我很困惑服务器如何知道谁连接了以及我如何将事件广播给所有客户端,而不仅仅是一两个客户端。

我知道使用流是答案的一部分,但是因为每个客户端都在使用服务器创建自己的流,所以我不确定它如何订阅其他服务器-客户端流。

go publish-subscribe redis http2 grpc

5
推荐指数
1
解决办法
1万
查看次数

在 Ruby (Rails) 中评估 module.exports

目前,我正在尝试Hash从 JS 中获取某种Ruby 格式的内容。

我有一个看起来像这样的 JS 模块

module.exports = {
  key1: "val",
  key2: {
    key3: "val3"
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

这只是作为一个字符串提供给我的。我知道 ExecJS 在这里可能会有所帮助,但我不确定将其转换为哈希的最佳方法是什么。

我目前正在尝试做这样的事情

contents.prepend("var module = {exports: {}};\n")
context = ExecJS.compile contents

context.eval('module.exports').to_hash
Run Code Online (Sandbox Code Playgroud)

但是当给它一个像上面这样的字符串时,我收到了来自 JSON gem 的解析错误。

javascript ruby ruby-on-rails execjs

5
推荐指数
1
解决办法
112
查看次数

从重定向标签返回 - React Router

目前,我创建了一个搜索栏,并将我的搜索栏链接到我的搜索结果,如下所示:

render() {
if (this.props.itemsFetchSuccess) {
  return (
    <Redirect to={{
      pathname: '/search',
      search: `?item-name=${this.props.searchQuery}`
    }} />
  );
Run Code Online (Sandbox Code Playgroud)

作为我的搜索栏渲染组件的一部分。

GOOGLE CHROME 主 -> 主登陆 -> 搜索结果。

但我怀疑因为我在 React-Router v4 中使用了重定向标签,所以它没有将它添加到浏览器历史堆栈中。如果我从搜索结果页面按回浏览器,它不会返回之前的页面(即主登陆),但会返回主登陆之前的页面。

有没有更好的方法来做到这一点,因为我也尝试使用 Link 标签,但这不起作用,因为它只是生成链接,并且在搜索结果完成后实际上并不重定向。

谢谢!

javascript web reactjs react-router react-redux

4
推荐指数
2
解决办法
4924
查看次数