我有一个元组数组:
private var clientsConnections = [ (String,[WebSocket]) ]()
- String**:文件室的ID
- *[网络套接字]**:该房间中用户的websockets
我尝试关闭房间内特定WebSocket的连接,比如说当用户退出房间时,并从我的阵列中删除该WebSocket。我遇到的问题是WebSocket无法转换为AnyHashable。
我尝试过:
ws.onClose.whenComplete { _ in
for i in 0..<clientsConnections.count {
if clientsConnections[i].0 == roomID {
if let socketIndex = clientsConnections[i].1.firstIndex(where: {$0 == ws}) {
clientsConnections[i].1.remove(at: socketIndex)
}
}
}
}
获取此信息:(右下方声明:"{$0 == ws}"
'WebSocket'无法转换为'AnyHashable'
1条答案
按热度按时间j5fpnvbx1#
我会用字典如果使用键引用
WebSocket
,则它不必符合Hashable
。我已经在我和Swift一起做的一个辅助项目中实现了它。
下面是一个精心挑选的实现:
然后在
configure.swift
文件中: