Ruby ruby TCPServer 定时推送问题.

glorySpring · 2014年01月24日 · 最后由 lisafangfang 回复于 2019年05月14日 · 2834 次阅读

现在想做一个 TCPServer 定时器。想每隔 30 秒向已经连接到服务器的客户端发送一条消息。想了半天也不知道该怎么实现,各位同胞们,有好想法嘛?

之前我是这么写的...

require 'socket'
begin
server = TCPServer.new 1999
puts "========AAAStartAAA========"
loop do
  Thread.start(server.accept) do |client|
    puts "Hello !"
    sleep(30)
    client.puts "Time is #{Time.now}"
    #client.close
  end
 end
rescue Exception
end

可是....看也就知道了...完全不是那么回事...

ps: 呃...快过年了,先给大家拜个早年。祝大家:马到功成,马上有钱.....

http://www.sitepoint.com/ruby-tcp-chat/ 几天前收藏的文章还没来得及看,你看看有没有帮助。

你描述的问题是 每隔 30 秒发送一条消息,但是代码实现的是等待 30 秒,然后发送一条消息。至少在 Thread.start 的 block 中加一层 loop 循环啊。

#2 楼 @yuhaidonghd 嗯 好的,这个已经改掉了..谢谢 #1 楼 @zgm 谢谢 我看一下。

有个叫 mqtt,可以拿去玩玩

现在有很多第三方推送 sdk,我觉得使用起来都很方面的,之前有用过 Mobpush 这个,感觉很不错!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号