私はRedisのPublisherとSubscriberに以下のコードを使用しています。ここでは、PubSubはRedisで動作していません
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
を私はRedisのサーバーバージョン3.2.6を使用していると私はMavenの依存下に使用して、バージョン2.9.0のRedisのJavaクライアントjedisから接続しています私は、実行時に私のコードは、
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import redis.clients.jedis.Jedis;
//import redis.clients.jedis.BinaryJedisPubSub;
import redis.clients.jedis.JedisPubSub;
public class JavaProject extends JedisPubSub{
public static void main(String[] args) throws IOException, InterruptedException {
Jedis jedis = new Jedis("192.168.0.20");
try {
jedis.connect();
System.out.println("Connected");
String subChannel = "192168026*";
JavaProject javaProject=new JavaProject();
jedis.subscribe(javaProject,subChannel);
System.out.println("Subscribed to topic");
jedis.publish(subChannel, "Hi".getBytes());
System.out.println("Published to topics");
}
catch(Exception jce){
jce.printStackTrace();
}
finally {
jedis.close();
}
System.out.println("Program Completed");
while(true){
}
}
@Override
public void onUnsubscribe(String arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSubscribe(String arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onPUnsubscribe(String arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onPSubscribe(String arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onPMessage(String arg0, String arg1, String arg2) {
// TODO Auto-generated method stub
}
@Override
public void onMessage(String channel, String message) {
System.out.println(message);
}
}
です上記のコードでは、私は以下の出力を得ます 接続
しかし、subscribe()メソッドでハングアップすると、実行は次の行に移動しません このコードで何が間違っていますか?
おかげ