小编use*_*179的帖子

Rails和MQTT:在服务器启动时订阅后台主题?

我希望在服务器启动时在我的rails应用程序中订阅mqtt主题,并保持订阅始终处于活动状态并正在运行.

我正在使用这个mqtt gem进行mqtt通信:https: //github.com/njh/ruby-mqtt

这就是我现在所拥有的:

在application.rb中:

config.after_initialize do
 mqttSub = BackgroundMQTT.new
 mqttSub.run
end
Run Code Online (Sandbox Code Playgroud)

BackgroundMQTT类:

class MQTTSubscriber
  def run
    Thread.new do
      MQTT::Client.connect(:host => 'localhost', :port => 1883,) do |c|
        c.get('#') do |topic,message|
          puts "#{topic}: #{message}"
          #Do things, access activerecord etc.
        end
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

所以基本上mqtt订阅从after_initialize方法开始,据我所知,不会自动停止?

另外如您所见,我正在线程中运行订阅,否则我的rails应用程序将停止执行除听取mqtt订阅之外的任何其他操作.

这似乎至少在前几分钟有效.

我不确定这是否是我想做的事情的推荐方式.这会导致我没有考虑过的任何问题吗?这样做的推荐方法是什么?

ruby ruby-on-rails backgroundworker ruby-on-rails-3 mqtt

6
推荐指数
1
解决办法
1545
查看次数

Android从Java类回调到Activity

如何通过Java类对Activity进行回调?

例:

    public class TestClass{
    String text = "Test";
    public TestClass(Context context){
            startActivity(new Intent(context, SomeActivity.class));
    }

    private void sendToSomeActivity(){
      //Call some method of SomeActivity and pas text as string
    }

   }
Run Code Online (Sandbox Code Playgroud)

sendToSomeActivity()被调用时,我想对已经开始的回调SomeActivity,并将一些文本传递给Activity。在SomeActivity我想用文字。

注意:我要使用的TestClass对象已经在另一个类中创建。

如何才能做到这一点?

android callback android-activity

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