gpt4 book ai didi

dart - 在dart中的.listen()中保存调用者身份

转载 作者:行者123 更新时间:2023-12-03 04:17:01 25 4
gpt4 key购买 nike

我正在制作几个将由单个匿名函数处理的websocket:

handleWebSocketCreation(WebSocket socket) {
connections[++current_connections] = socket;
socket.listen((String s) => print("Client $current_connections sent: $s"), onDone: () {
print('Client $current_connections disconnected');
});
}
显然,这并没有按预期的那样工作(无论套接字发送的是哪个套接字,它都会不断打印更大的current_connections值,而不是实际的ID)
任何可能会这样输出的解决方法?

Client 3 sent: hello

Client 1 sent: hi, 3!

Client 2 disconnected

etc...

最佳答案

您需要在一个变量中捕获current_connection的值,以便以后使用。

handleWebSocketCreation(WebSocket socket) {
int id = ++currentConnections;
connections[id] = socket;
socket.listen((String s) {
print("Client $id sent: $s");
}, onDone: () {
print('Client $id disconnected');
});
}

关于dart - 在dart中的.listen()中保存调用者身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39106769/

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