SwiftUI集成Stream Chat SDK创建频道遇WaiterTimeout错误求助
SwiftUI集成Stream Chat SDK创建频道时出现WaiterTimeout错误
已成功集成Stream Chat SDK并完成用户登录,但创建硬编码"general"频道时反复触发WaiterTimeout错误,官方文档无法定位原因。
创建频道的代码:
class ChatManager: ObservableObject { // vars and other methods public func createNewChannel(name: String) { do { let channelId = ChannelId(type: .messaging, id: "general") let channelController = try chatClient.channelController( createChannelWithId: channelId, name: name, members: [], isCurrentUserMember: true ) channelController.synchronize { error in if let error = error { print(error) } } } catch { print(error) } } }
频道列表视图代码:
struct ChannelListView: View { @EnvironmentObject var chatManager: ChatManager var body: some View { ChatChannelListView( viewFactory: CustomFactory.shared, channelListController: chatManager.customChannelListController ) } } class CustomFactory: ViewFactory { @Injected(\.chatClient) public var chatClient private init() {} public static let shared = CustomFactory() func makeNoChannelsView() -> some View { VStack { Text("This is our own custom no channels view.") } } }
触发按钮后输出的错误日志:
2023-08-31 09:28:09.799 [ERROR] [com.apple.root.default-qos] [APIClient.swift:223] [executeRequest(endpoint:completion:)] > Error WaiterTimeout in /Users/username/Library/Developer/Xcode/DerivedData/project_name/SourcePackages/checkouts/stream-chat-swift/Sources/StreamChat/Utils/Timers.swift:54
可能的解决方案:
- 检查网络连接:确认设备能正常访问Stream的API服务,排除防火墙、代理或VPN的拦截,尝试切换网络(比如从WiFi到蜂窝数据)测试。
- 验证ChatClient配置:确保初始化
ChatClient时使用的API Key、用户Token完全正确,环境配置(生产/开发)与Stream控制台一致。 - 修正频道创建参数:
尝试将members参数从空数组改为包含当前用户ID的数组,即使isCurrentUserMember设为true,显式添加成员可能解决SDK内部的验证逻辑问题:members: [chatClient.currentUserId!] - 刷新频道列表控制器:创建频道后,调用
customChannelListController.synchronize()触发列表刷新,避免因本地缓存未更新导致的重复请求超时。 - 调整超时配置:初始化
ChatClient时,尝试设置更长的超时时间,比如:let config = ChatClientConfig(apiKey: .init("YOUR_API_KEY")) config.urlSessionConfiguration.timeoutIntervalForRequest = 30 let chatClient = ChatClient(config: config) - 清理缓存与重启:清理Xcode的DerivedData,卸载APP后重新安装,重启Xcode和设备,排除本地缓存或构建残留的问题。
内容的提问来源于stack exchange,提问作者tryingtocode
相关产品推荐
相关产品推荐

