当前位置: 首页 > 知识库问答 >
问题:

使用事件机设置并发Web套接字

唐沈义
2023-03-14

我想使用websocket eventmachine客户端gem来尝试创建多个并发web套接字,但我不确定如何进行。

我需要使用EM.defer或类似的东西吗?

例如,我有20个URL需要连接和侦听。要连接到一个,我可以执行以下操作:

EM.run do
  ws = WebSocket::EventMachine::Client.connect(uri: host)

  ws.onopen do
    p :open
  end

  ws.onmessage do |msg, type|
    p [:message, msg]
  end

  ws.onclose do |code, reason|
    p :closed
  end

  ws.onerror do |error|
    p :error
  end
end

做20次的代码是什么?到目前为止,我只设法获得串行连接。

共有1个答案

裴和怡
2023-03-14

最后我做到了:

EM.run do
  EM::Iterator.new(connections_list, connections_list.size).each do |conn, iterator|
    # Connection stuff as in question
  end
end
 类似资料:
  • 问题内容: 我正在使用API(,和,和朋友)对远程服务器进行Web服务调用,这在很大程度上取得了很大的成功。 但是,有时会出现问题,并且程序永远卡住。 为了解决这个问题,我想添加一个读取超时。 我发现有几种方法可以实现这一目标,但它们似乎都非常糟糕。 所以我对社区的问题是:使用javax.xml.soap API进行调用时,实现读取超时行为的最佳方法是什么? 问题答案: 您必须创建自己的URLSt

  • 问题内容: 我想将数据发送到服务器,然后等待一分钟,然后关闭套接字。 怎么做? 问题答案: 你可以试试看 根据您的情况更改套接字的超时!此代码将发送一条消息,然后等待接收消息,直到达到超时!

  • 我已经创建了一个web socket来接收单个消息,它将进行一些处理并将响应消息返回给客户端。我已经使用Play框架创建了web socket。下面给出了代码片段。 代码片段: 我已经测试了我的web套接字从http://www.websocket.org/echo.html.我连接了我的web套接字,并按顺序传递了三个消息,分别是“1”、“2”和“3”。我在传递这些消息时得到了下面的响应。 we

  • 问题内容: 也许这是一个愚蠢的问题,但我似乎找不到一个明显的答案。 我需要一个仅包含唯一值的并发FIFO队列。尝试添加队列中已经存在的值只会忽略该值。如果不是为了线程安全,那将是微不足道的。在Java中是否存在数据结构,或者在Interweb上是否存在代码snipit表现出这种行为? 问题答案: 如果您想要比完全同步更好的并发性,那么我知道有一种方法可以使用ConcurrentHashMap作为支

  • 问题内容: 因此,我正在尝试优化节点应用程序,并且我的应用程序发出HTTP和HTTPS请求。 从LinkedIn的这篇文章中可以使节点变得更快,它建议禁用套接字池以消除5个套接字的限制: 现在来自GitHub上的Mikeal(Request的开发者),他建议: 公平地说,他不建议无限,但您可以在其中加上任何合理的值。 现在,我的应用程序使用http和https,因此我使用了以下代码: 当我这样做时

  • 我有一个IMAP服务器主机名:xyz.com.我的SMTP主机名是:comcast.net. 现在,当我通过Outlook发送电子邮件时,它会自动将我的ID[发件人ID]显示为:myusername@xyz.com而不是myusername@comcast.net. 我想用JavaMail API实现同样的目标。 当我使用JavaMail API时,它将发送者显示为myusername@comca