gpt4 book ai didi

java - 制作netty-socketio服务器集群

转载 作者:行者123 更新时间:2023-11-30 10:24:27 27 4
gpt4 key购买 nike

我正在使用 This用于 socketio 设置。我有 2 个不同的 socketio 服务器(比如 server1 和 server2)在集群中运行,使用 RedissonStoreFactory

我的问题是,如果任何客户端与 server1 连接,则 server2 没有连接客户端的信息。IE。如果 2 个客户端连接到服务器 1,并且如果我在服务器 2 上执行 server.getAllClients(),它会返回空列表而不是包含 2 个计数的列表。

这是我在两台不同机器上运行的代码。

@SpringBootApplication
public class Application {


private static final Logger LOGGER = Logger.getLogger(Application.class);

@Value("${test.socketio.hostName}")
private String socketIOHostName;

@Value("${test.socketio.port}")
private Integer socketIOport;

@Value("${test.dedisson.redissonAddress}")
private String redissonAddress;

@Autowired
private RedissonClient redissonClient;

@Bean
public SocketIOServer socketIOServer() {
LOGGER.info("Socket server starting on host=" + socketIOHostName + ", port=" + socketIOport);
Configuration config = new Configuration();
config.setHostname(socketIOHostName);
config.setPort(socketIOport);

StoreFactory redissonStoreFactory = new RedissonStoreFactory(redissonClient);
config.setStoreFactory(redissonStoreFactory);
SocketIOServer server = new SocketIOServer(config);
server.start();
LOGGER.info( "Socket server started");
return server;
}

/**
*
* @return
*/
@Bean
public RedissonClient getRedissonClient(){
LOGGER.info("creatting redisson client on redissonAddress="+redissonAddress);
Config config = new Config();
config.useSingleServer().setAddress(redissonAddress);
RedissonClient redisson = Redisson.create(config);
LOGGER.info("redisson client connected");
return redisson;
}


public Application() {
//Nothing to be done here
}

public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
}

@Bean
public SpringAnnotationScanner springAnnotationScanner(SocketIOServer ssrv) {
return new SpringAnnotationScanner(ssrv);
}
}

我更喜欢 2 个实例用于故障转移条件。如果服务器 1 关闭,则服务器 2 将向连接的客户端发送通知,但在我的情况下,服务器 2 不知道与服务器 1 连接的客户端。

最佳答案

关于java - 制作netty-socketio服务器集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46538493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com