我有下面的Spring boot
代码,可以在Redis流附加新记录时接收值。问题是,当与subscriber进行检查时,接收方从未收到任何消息,订阅者也是如此。isActive()
,始终处于非活动状态。这个代码有什么问题?我错过了什么?文件供参考。
在spring启动时,初始化必要的redis资源
生菜连接厂
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory("127.0.0.1", 6379);
}
从连接工厂重新创建模板
@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
return redisTemplate;
}
Rest控制器将数据附加到redis流
@PutMapping("/{name}")
public String post(@PathVariable String name) {
return redisTemplate.opsForStream().add(StreamRecords.newRecord().in("streamx").ofObject(name)).getValue();
}
JMS风格的命令式消息侦听器
@Component
public class MyStreamListener implements StreamListener<String, MapRecord<String, String, String>> {
@Override
public void onMessage(MapRecord<String, String, String> message) {
System.out.println("message received: " + message.getValue());
}
}
初始化侦听器
@Bean
public Subscription listener(MyStreamListener streamListener, RedisConnectionFactory redisConnectionFactory) throws InterruptedException {
StreamMessageListenerContainer<String, MapRecord<String, String, String>> container = StreamMessageListenerContainer
.create(redisConnectionFactory);
Subscription subscription = container.receive(Consumer.from("my-group-1", "consumer-1"),
StreamOffset.create("streamx", ReadOffset.latest())), streamListener);
System.out.println(subscription.isActive()); // always false
return subscription;
}
不过,我可以通过api将其附加到流中。
重要的一步是,在订阅完成后启动StreamMessageListenerContainer
。
container.start();
我正在尝试spring websockets,由于某些原因我不明白,我可以建立与服务器的连接,但当我发送数据时什么也没有发生。 下面是我的配置类(与其他spring websocket示例完全相同): } 我的控制器,在一个包中,我确保spring inicialites它,因为我用@PostConstruct注释说明init()消息。如您所见,我编写了system.out.println以便在控
如何将数据从PHP页面发送到TCP端口? 我正在使用它,但我不能使用任何数据!还有,你知道我怎么才能暂停吗? 有什么问题?
问题内容: 我正在使用套接字连接我的Android应用程序(客户端)和Java后端服务器。每次与服务器通信时,我都希望从客户端发送两个数据变量。 1)某种消息(由用户通过界面定义) 2)消息的语言(由用户通过界面定义) 我该如何发送这些消息,以便服务器将每个消息解释为一个单独的实体? 在读取了服务器端的数据并做出了适当的结论之后,我想向客户端返回一条消息。(我想我会没事的) 因此,我的两个问题是如
求你了,我需要你的帮助。 我正在使用TCP连接在java服务器和android应用程序客户端之间建立TCP连接。假设我将发送一个序列化对象,但是每次在客户端,代码都会在中的Obj=(Person)处被阻塞。readObject;其中in是数据对象InputStream,Person是序列化对象。 然而,如果我发送的是字符串或整数,并且我使用Obj=in,代码就可以工作。readObject;直接地
我有一个spring webFlux服务器,我还没有为它激活SSL,它使用HTTP/1.1进行请求连接。另一方面,在另一个应用程序中编写了一个spring WebClient,该应用程序调用这个服务器并接收流数据作为应答。但问题是,我读到HTTP/1.1协议不是为流设计的,它用于简单的请求和响应连接,对于流可以使用HTTP/2。我想知道spring webclient是如何通过HTTP/1.1协议
亲爱的社区,你好。当我试图通过Base64显示从MySQL收到的图片时,我遇到了一个问题。图像上传和存储在数据库没有问题。 我的模型类: 控制器: 和网页标签: 对于结果,我有这个:问题元素 我做错了什么? 祝你好运。