gpt4 book ai didi

websocket - 打破异常:预期为字符串

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

当我运行代码时,我得到:

Breaking on exception: String expected



我正在尝试使用Websocket连接到我的服务器。但是,无论我的服务器是否联机,客户端似乎仍然崩溃。
我的代码:

import 'dart:html';
WebSocket serverConn;
int connectionAttempts;
TextAreaElement inputField = querySelector("#inputField");
String key;
void submitMessage(Event e) {
if (serverConn.readyState == WebSocket.OPEN) {
querySelector("#chatLog").text = inputField.value;
inputField.value = "";
}
}

void recreateConnection(Event e) {
connectionAttempts++;
if (connectionAttempts <= 5) {
inputField.value = "Connection failed, reconnecting. Attempt" + connectionAttempts.toString() + "out of 5";
serverConn = new WebSocket("ws://127.0.0.1:8887");
serverConn.onClose.listen(recreateConnection);
serverConn.onError.listen(recreateConnection);
} else {
inputField.value = "Connections ran out, please refresh site";
}
}

void connected(Event e) {
serverConn.sendString(key);
if (serverConn.readyState == WebSocket.OPEN) {
inputField.value = "CONNECTED!";
inputField.readOnly = false;
}
}

void main() {
serverConn = new WebSocket("ws://127.0.0.1:8887");
serverConn.onClose.listen(recreateConnection);
serverConn.onError.listen(recreateConnection);
serverConn.onOpen.listen(connected);
//querySelector("#inputField").onInput.listen(submitMessage);
querySelector("#sendInput").onClick.listen(submitMessage);
}

我的Dart编辑器没有说问题的根源,也没有给出任何警告,直到运行时。

最佳答案

您需要使用有效值初始化int connectionAttempts;connectionAttempts++;失败,但null异常(exception)。

您还需要一个onMessage处理程序来接收消息。

serverConn.onMessage.listen((MessageEvent e) {
recreateConnection也应该注册一个 onOpen处理程序。
serverConn = new WebSocket之后,在 main()中注册的监听器将无法使用

如果您在仅预期单个事件的地方注册了侦听器,则可以使用 first代替 listen
serverConn.onOpen.first.then(connected);

根据@JAre的评论。

尝试使用硬编码的字符串

querySelector("#chatLog").text = 'someValue';

确保这不是罪魁祸首。

关于websocket - 打破异常:预期为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25733550/

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