# chatroom **Repository Path**: shawTututu/chatroom ## Basic Information - **Project Name**: chatroom - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-30 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaFX MQTT 聊天室应用 这是一个基于JavaFX和MQTT协议的聊天室应用程序,支持多客户端同时连接。 ## 启动类 主启动类是 `com.shaw.chat.HelloApplication`,这是JavaFX应用程序的入口点。 ## 如何运行 有几种方式可以运行应用程序: ### 1. 使用Maven命令(推荐) 在项目根目录下执行: ```bash mvn javafx:run ``` ### 2. 在IDE中运行 在IDE中找到 `com.shaw.chat.HelloApplication` 类,右键选择运行。 ### 3. 使用批处理脚本 - Windows用户:双击 `run-client.bat` 或 `run-client.ps1` 文件 每个客户端实例需要在独立的终端窗口或进程中运行,以支持多客户端功能。 ## 功能特性 - 基于MQTT发布/订阅模式的消息传递 - 支持多客户端同时连接 - 配置文件驱动,易于定制 - 友好的JavaFX用户界面 ## 配置参数 应用使用 `src/main/resources/chat-config.properties` 文件进行配置: ```properties # MQTT 服务器地址 mqtt.broker=tcp://broker.hivemq.com:1883 # 客户端ID前缀 mqtt.client.prefix=chat_client_ # 聊天主题 mqtt.topic=chatroom/global # 消息服务质量等级 mqtt.qos=1 # 连接超时时间(秒) mqtt.connection.timeout=30 # 心跳间隔(秒) mqtt.keep.alive.interval=60 ``` ## 如何运行多个客户端 要运行多个客户端实例,请按照以下步骤操作: 1. 首先编译项目: ```bash mvn clean compile ``` 2. 打开第一个终端窗口,运行: ```bash mvn javafx:run ``` 3. 打开第二个终端窗口,运行相同的命令: ```bash mvn javafx:run ``` 4. 每个终端窗口可以运行一个独立的客户端实例 ## 多客户端支持原理 - 每个客户端实例都会生成唯一的客户端ID(基于时间戳) - 客户端ID格式:`[prefix][generated_id]_[timestamp]` - 所有客户端订阅相同的MQTT主题,实现消息共享 ## 注意事项 - 确保MQTT服务器可访问 - 不同客户端需要使用不同用户名以区分消息来源 - 应用程序使用公共MQTT代理,生产环境建议使用私有服务器