Comments (16)
用的tomcat吗,后端有异常信息吗,我这边好像没有复现
我晚点用你的demo试下
from concept.
在OnMessage的时候
from concept.
在OnMessage的时候
服务端发给客户端还是客户端发给服务,数据量大概是多大
from concept.
客户端发给服务端 目前发送大概在15k左右
from concept.
代码如下
@configuration
public class WebSocketLoadBalanceConfig {
@Value("${nxsocket.wsurl}")
private String wsurl;
@Autowired
RedisService redisService;
@Bean
public MessageHandler messageHandler() {
return new WebSocketMessageHandler() {
@SneakyThrows
@Override
public void onMessage(Message message, Connection connection, ConnectionLoadBalanceConcept concept) {
String b64Str = message.getPayload().toString();
String decodedStr = new String(Base64Decoder.decode(b64Str));
TransMessage transMessage = JSONObject.parseObject(decodedStr, TransMessage.class);
if("call".equals(transMessage.getType())){
HttpUtils.sendPostJson(wsurl+"/sendNxCall",JSONObject.toJSONString(transMessage));
} else{
HttpUtils.sendPostJson(wsurl+"/send-user",JSONObject.toJSONString(new PipMessage<String>(transMessage.getUuid(),b64Str)));
}
}
};
}
@Bean
public ConnectionEventListener connectionEventListener() {
return new WebSocketEventListener() {
@Override
public void onEvent(Object event, ConnectionLoadBalanceConcept concept) {
if (event instanceof ConnectionEvent) {
Connection connection = ((ConnectionEvent) event).getConnection();
if (connection.isClientType()) {
if (event instanceof ConnectionEstablishEvent) {
System.out.println("Open " + connection.getMetadata());
} else if (event instanceof ConnectionCloseEvent) {
System.out.println("Close " + connection.getMetadata());
} else if (event instanceof ConnectionErrorEvent) {
System.out.println("Error " + connection.getMetadata());
}
}
}
}
};
}
@Bean
public ConnectionServerManager connectionServerManager() {
return new ConnectionServerManager() {
@Override
public void add(ConnectionServer server, ConnectionLoadBalanceConcept concept) {
}
@Override
public void remove(ConnectionServer server, ConnectionLoadBalanceConcept concept) {
}
@Override
public void clear(ConnectionLoadBalanceConcept concept) {
}
@Override
public boolean isEqual(ConnectionServer server1, ConnectionServer server2, ConnectionLoadBalanceConcept concept) {
return false;
}
@Override
public ConnectionServer getLocal(ConnectionLoadBalanceConcept concept) {
return new ConnectionServer() {
@Override
public String getInstanceId() {
return "localhost";
}
@Override
public String getServiceId() {
return "localhost";
}
@Override
public String getHost() {
return "localhost";
}
@Override
public int getPort() {
return 0;
}
@Override
public Map<String, String> getMetadata() {
return Collections.emptyMap();
}
@Override
public URI getUri() {
return null;
}
@Override
public String getScheme() {
return null;
}
@Override
public boolean isSecure() {
return false;
}
};
}
@Override
public List<ConnectionServer> getConnectionServers(ConnectionLoadBalanceConcept concept) {
return Collections.emptyList();
}
};
}
}
from concept.
html 代码如下
<title>Document</title> <textarea id="message"></textarea> send <script>//链接socket
var socket
let messageElement = document.getElementById("message");
window.onload = function () {
uid = uuid();
// 设置本地存储
if (typeof (WebSocket) == "undefined") {
console.log("您的浏览器不支持WebSocket");
} else {
console.log("您的浏览器支持WebSocket");
socket = new WebSocket("ws://127.0.0.1:8083/concept-websocket/user?userId=" + uid);
//连接打开事件
socket.onopen = function () {
console.log("Socket 已打开");
};
//收到消息事件
socket.onmessage = function (msg) {
console.log(msg.data);
console.log(base64Decode(msg.data));
};
//连接关闭事件
socket.onclose = function () {
console.log("Socket已关闭");
};
//发生了错误事件
socket.onerror = function () {
alert("服务异常请重试并联系开发者!")
}
//窗口关闭时,关闭连接
window.unload = function () {
socket.close();
};
}
}
function sendmsg() {
text = messageElement.value;
if (text == "") {
alert("消息不能为空!");
return;
}
let postdata = {
"uuid": uid,
"message": text
}
socket.send(base64Encode(JSON.stringify(postdata)));
messageElement.value = "";
}
function uuid() {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var uuid = s.join("");
return uuid;
}
// //function base64 decode
// function base64decode(str) {
// var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
// var base64DecodeChars = new Array(
// Base64 编码函数
function base64Encode(str) {
const encoder = new TextEncoder();
const data = encoder.encode(str);
const base64 = btoa(String.fromCharCode.apply(null, data));
return base64;
}
// Base64 解码函数
function base64Decode(base64) {
const binaryStr = atob(base64);
const decoder = new TextDecoder();
const decodedStr = decoder.decode(new Uint8Array([...binaryStr].map(char => char.charCodeAt(0))));
return decodedStr;
}
from concept.
from concept.
用的tomcat吗,后端有异常信息吗,我这边好像没有复现
from concept.
好的麻烦了 直接用的springboot 3.0.5
设置了
server:
port: 8083
tomcat:
max-http-form-post-size:50MB
没有什么效果
from concept.
服务端没有任何报错吗
from concept.
没有 就是显示关闭了我发下日志
C:\Users\nixer.jdks\corretto-17.0.9\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:56521,suspend=y,server=n -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" -javaagent:C:\Users\nixer\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\232.9921.47\plugins\java\lib\rt\debugger-agent.jar=file:/C:/Users/nixer/AppData/Local/Temp/capture.props -Dfile.encoding=UTF-8 -classpath D:\mysdk\maoyou\iai\target\classes;D:\mysdk\mvnlib\org\springdoc\springdoc-openapi-starter-webmvc-ui\2.1.0\springdoc-openapi-starter-webmvc-ui-2.1.0.jar;D:\mysdk\mvnlib\org\springdoc\springdoc-openapi-starter-webmvc-api\2.1.0\springdoc-openapi-starter-webmvc-api-2.1.0.jar;D:\mysdk\mvnlib\org\springdoc\springdoc-openapi-starter-common\2.1.0\springdoc-openapi-starter-common-2.1.0.jar;D:\mysdk\mvnlib\io\swagger\core\v3\swagger-core-jakarta\2.2.9\swagger-core-jakarta-2.2.9.jar;D:\mysdk\mvnlib\io\swagger\core\v3\swagger-annotations-jakarta\2.2.9\swagger-annotations-jakarta-2.2.9.jar;D:\mysdk\mvnlib\io\swagger\core\v3\swagger-models-jakarta\2.2.9\swagger-models-jakarta-2.2.9.jar;D:\mysdk\mvnlib\jakarta\validation\jakarta.validation-api\3.0.2\jakarta.validation-api-3.0.2.jar;D:\mysdk\mvnlib\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.14.2\jackson-dataformat-yaml-2.14.2.jar;D:\mysdk\mvnlib\org\webjars\swagger-ui\4.18.2\swagger-ui-4.18.2.jar;D:\mysdk\mvnlib\com\aventrix\jnanoid\jnanoid\2.0.0\jnanoid-2.0.0.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter\3.0.5\spring-boot-starter-3.0.5.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot\3.0.5\spring-boot-3.0.5.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-autoconfigure\3.0.5\spring-boot-autoconfigure-3.0.5.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter-logging\3.0.5\spring-boot-starter-logging-3.0.5.jar;D:\mysdk\mvnlib\ch\qos\logback\logback-classic\1.4.6\logback-classic-1.4.6.jar;D:\mysdk\mvnlib\ch\qos\logback\logback-core\1.4.6\logback-core-1.4.6.jar;D:\mysdk\mvnlib\org\apache\logging\log4j\log4j-to-slf4j\2.19.0\log4j-to-slf4j-2.19.0.jar;D:\mysdk\mvnlib\org\slf4j\jul-to-slf4j\2.0.7\jul-to-slf4j-2.0.7.jar;D:\mysdk\mvnlib\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;D:\mysdk\mvnlib\org\springframework\spring-core\6.0.7\spring-core-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-jcl\6.0.7\spring-jcl-6.0.7.jar;D:\mysdk\mvnlib\org\yaml\snakeyaml\1.33\snakeyaml-1.33.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter-web\3.0.5\spring-boot-starter-web-3.0.5.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter-json\3.0.5\spring-boot-starter-json-3.0.5.jar;D:\mysdk\mvnlib\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.14.2\jackson-datatype-jdk8-2.14.2.jar;D:\mysdk\mvnlib\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.14.2\jackson-datatype-jsr310-2.14.2.jar;D:\mysdk\mvnlib\com\fasterxml\jackson\module\jackson-module-parameter-names\2.14.2\jackson-module-parameter-names-2.14.2.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter-tomcat\3.0.5\spring-boot-starter-tomcat-3.0.5.jar;D:\mysdk\mvnlib\org\apache\tomcat\embed\tomcat-embed-core\10.1.7\tomcat-embed-core-10.1.7.jar;D:\mysdk\mvnlib\org\apache\tomcat\embed\tomcat-embed-el\10.1.7\tomcat-embed-el-10.1.7.jar;D:\mysdk\mvnlib\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.7\tomcat-embed-websocket-10.1.7.jar;D:\mysdk\mvnlib\org\springframework\spring-web\6.0.7\spring-web-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-beans\6.0.7\spring-beans-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-webmvc\6.0.7\spring-webmvc-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-aop\6.0.7\spring-aop-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-expression\6.0.7\spring-expression-6.0.7.jar;D:\mysdk\mvnlib\org\apache\httpcomponents\httpclient\4.5.4\httpclient-4.5.4.jar;D:\mysdk\mvnlib\org\apache\httpcomponents\httpcore\4.4.16\httpcore-4.4.16.jar;D:\mysdk\mvnlib\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\mysdk\mvnlib\org\apache\httpcomponents\httpmime\4.5\httpmime-4.5.jar;D:\mysdk\mvnlib\org\projectlombok\lombok\1.18.26\lombok-1.18.26.jar;D:\mysdk\mvnlib\jakarta\xml\bind\jakarta.xml.bind-api\4.0.0\jakarta.xml.bind-api-4.0.0.jar;D:\mysdk\mvnlib\jakarta\activation\jakarta.activation-api\2.1.1\jakarta.activation-api-2.1.1.jar;D:\mysdk\mvnlib\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;D:\mysdk\mvnlib\junit\junit\4.10\junit-4.10.jar;D:\mysdk\mvnlib\org\hamcrest\hamcrest-core\2.2\hamcrest-core-2.2.jar;D:\mysdk\mvnlib\com\alibaba\fastjson\1.2.83\fastjson-1.2.83.jar;D:\mysdk\mvnlib\cn\hutool\hutool-all\5.7.12\hutool-all-5.7.12.jar;D:\mysdk\mvnlib\org\mybatis\spring\boot\mybatis-spring-boot-starter\3.0.2\mybatis-spring-boot-starter-3.0.2.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter-jdbc\3.0.5\spring-boot-starter-jdbc-3.0.5.jar;D:\mysdk\mvnlib\com\zaxxer\HikariCP\5.0.1\HikariCP-5.0.1.jar;D:\mysdk\mvnlib\org\springframework\spring-jdbc\6.0.7\spring-jdbc-6.0.7.jar;D:\mysdk\mvnlib\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\3.0.2\mybatis-spring-boot-autoconfigure-3.0.2.jar;D:\mysdk\mvnlib\org\mybatis\mybatis\3.5.13\mybatis-3.5.13.jar;D:\mysdk\mvnlib\org\mybatis\mybatis-spring\3.0.2\mybatis-spring-3.0.2.jar;D:\mysdk\maoyou\iai\libs\chatgpt-java-1.1.5-nixerfix.jar;D:\mysdk\mvnlib\com\squareup\retrofit2\retrofit\2.9.0\retrofit-2.9.0.jar;D:\mysdk\mvnlib\com\squareup\okhttp3\okhttp\4.10.0\okhttp-4.10.0.jar;D:\mysdk\mvnlib\com\squareup\okio\okio-jvm\3.0.0\okio-jvm-3.0.0.jar;D:\mysdk\mvnlib\org\jetbrains\kotlin\kotlin-stdlib-common\1.7.22\kotlin-stdlib-common-1.7.22.jar;D:\mysdk\mvnlib\org\jetbrains\kotlin\kotlin-stdlib\1.7.22\kotlin-stdlib-1.7.22.jar;D:\mysdk\mvnlib\org\jetbrains\annotations\13.0\annotations-13.0.jar;D:\mysdk\mvnlib\com\squareup\retrofit2\converter-jackson\2.9.0\converter-jackson-2.9.0.jar;D:\mysdk\mvnlib\com\fasterxml\jackson\core\jackson-databind\2.14.2\jackson-databind-2.14.2.jar;D:\mysdk\mvnlib\com\fasterxml\jackson\core\jackson-annotations\2.14.2\jackson-annotations-2.14.2.jar;D:\mysdk\mvnlib\com\fasterxml\jackson\core\jackson-core\2.14.2\jackson-core-2.14.2.jar;D:\mysdk\mvnlib\com\squareup\retrofit2\adapter-rxjava2\2.9.0\adapter-rxjava2-2.9.0.jar;D:\mysdk\mvnlib\io\reactivex\rxjava2\rxjava\2.0.0\rxjava-2.0.0.jar;D:\mysdk\mvnlib\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter-data-redis\3.0.5\spring-boot-starter-data-redis-3.0.5.jar;D:\mysdk\mvnlib\org\springframework\data\spring-data-redis\3.0.4\spring-data-redis-3.0.4.jar;D:\mysdk\mvnlib\org\springframework\data\spring-data-keyvalue\3.0.4\spring-data-keyvalue-3.0.4.jar;D:\mysdk\mvnlib\org\springframework\data\spring-data-commons\3.0.4\spring-data-commons-3.0.4.jar;D:\mysdk\mvnlib\org\springframework\spring-oxm\6.0.7\spring-oxm-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-context-support\6.0.7\spring-context-support-6.0.7.jar;D:\mysdk\mvnlib\io\lettuce\lettuce-core\6.2.3.RELEASE\lettuce-core-6.2.3.RELEASE.jar;D:\mysdk\mvnlib\io\netty\netty-common\4.1.90.Final\netty-common-4.1.90.Final.jar;D:\mysdk\mvnlib\io\netty\netty-handler\4.1.90.Final\netty-handler-4.1.90.Final.jar;D:\mysdk\mvnlib\io\netty\netty-resolver\4.1.90.Final\netty-resolver-4.1.90.Final.jar;D:\mysdk\mvnlib\io\netty\netty-buffer\4.1.90.Final\netty-buffer-4.1.90.Final.jar;D:\mysdk\mvnlib\io\netty\netty-transport-native-unix-common\4.1.90.Final\netty-transport-native-unix-common-4.1.90.Final.jar;D:\mysdk\mvnlib\io\netty\netty-codec\4.1.90.Final\netty-codec-4.1.90.Final.jar;D:\mysdk\mvnlib\io\netty\netty-transport\4.1.90.Final\netty-transport-4.1.90.Final.jar;D:\mysdk\mvnlib\io\projectreactor\reactor-core\3.5.4\reactor-core-3.5.4.jar;D:\mysdk\mvnlib\org\springframework\boot\spring-boot-starter-websocket\3.0.5\spring-boot-starter-websocket-3.0.5.jar;D:\mysdk\mvnlib\org\springframework\spring-messaging\6.0.7\spring-messaging-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-websocket\6.0.7\spring-websocket-6.0.7.jar;D:\mysdk\mvnlib\com\mysql\mysql-connector-j\8.0.32\mysql-connector-j-8.0.32.jar;D:\mysdk\mvnlib\com\alibaba\druid-spring-boot-starter\1.2.5\druid-spring-boot-starter-1.2.5.jar;D:\mysdk\mvnlib\com\alibaba\druid\1.2.5\druid-1.2.5.jar;D:\mysdk\mvnlib\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\mysdk\mvnlib\org\slf4j\slf4j-api\2.0.7\slf4j-api-2.0.7.jar;D:\mysdk\mvnlib\io\milvus\milvus-sdk-java\2.2.1\milvus-sdk-java-2.2.1.jar;D:\mysdk\mvnlib\io\grpc\grpc-netty-shaded\1.38.0\grpc-netty-shaded-1.38.0.jar;D:\mysdk\mvnlib\io\grpc\grpc-core\1.38.0\grpc-core-1.38.0.jar;D:\mysdk\mvnlib\com\google\android\annotations\4.1.1.4\annotations-4.1.1.4.jar;D:\mysdk\mvnlib\io\perfmark\perfmark-api\0.23.0\perfmark-api-0.23.0.jar;D:\mysdk\mvnlib\io\grpc\grpc-protobuf\1.38.0\grpc-protobuf-1.38.0.jar;D:\mysdk\mvnlib\io\grpc\grpc-api\1.38.0\grpc-api-1.38.0.jar;D:\mysdk\mvnlib\io\grpc\grpc-context\1.38.0\grpc-context-1.38.0.jar;D:\mysdk\mvnlib\com\google\protobuf\protobuf-java\3.12.0\protobuf-java-3.12.0.jar;D:\mysdk\mvnlib\com\google\api\grpc\proto-google-common-protos\2.0.1\proto-google-common-protos-2.0.1.jar;D:\mysdk\mvnlib\io\grpc\grpc-protobuf-lite\1.38.0\grpc-protobuf-lite-1.38.0.jar;D:\mysdk\mvnlib\com\google\guava\guava\30.1-android\guava-30.1-android.jar;D:\mysdk\mvnlib\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\mysdk\mvnlib\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\mysdk\mvnlib\org\checkerframework\checker-compat-qual\2.5.5\checker-compat-qual-2.5.5.jar;D:\mysdk\mvnlib\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;D:\mysdk\mvnlib\com\google\errorprone\error_prone_annotations\2.4.0\error_prone_annotations-2.4.0.jar;D:\mysdk\mvnlib\org\codehaus\mojo\animal-sniffer-annotations\1.19\animal-sniffer-annotations-1.19.jar;D:\mysdk\mvnlib\io\grpc\grpc-stub\1.38.0\grpc-stub-1.38.0.jar;D:\mysdk\mvnlib\com\google\protobuf\protobuf-java-util\3.12.0\protobuf-java-util-3.12.0.jar;D:\mysdk\mvnlib\org\apache\commons\commons-text\1.10.0\commons-text-1.10.0.jar;D:\mysdk\mvnlib\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\mysdk\mvnlib\org\apache\commons\commons-collections4\4.3\commons-collections4-4.3.jar;D:\mysdk\mvnlib\org\json\json\20190722\json-20190722.jar;D:\mysdk\mvnlib\org\apache\logging\log4j\log4j-slf4j-impl\2.19.0\log4j-slf4j-impl-2.19.0.jar;D:\mysdk\mvnlib\org\apache\logging\log4j\log4j-api\2.19.0\log4j-api-2.19.0.jar;D:\mysdk\mvnlib\org\apache\logging\log4j\log4j-core\2.19.0\log4j-core-2.19.0.jar;D:\mysdk\mvnlib\org\codehaus\plexus\plexus-utils\3.0.20\plexus-utils-3.0.20.jar;D:\mysdk\mvnlib\org\glassfish\jaxb\jaxb-runtime\4.0.2\jaxb-runtime-4.0.2.jar;D:\mysdk\mvnlib\org\glassfish\jaxb\jaxb-core\4.0.2\jaxb-core-4.0.2.jar;D:\mysdk\mvnlib\org\eclipse\angus\angus-activation\2.0.0\angus-activation-2.0.0.jar;D:\mysdk\mvnlib\org\glassfish\jaxb\txw2\4.0.2\txw2-4.0.2.jar;D:\mysdk\mvnlib\com\sun\istack\istack-commons-runtime\4.1.1\istack-commons-runtime-4.1.1.jar;D:\mysdk\mvnlib\com\github\linyuzai\concept-websocket-loadbalance-spring-boot-starter\2.3.2\concept-websocket-loadbalance-spring-boot-starter-2.3.2.jar;D:\mysdk\mvnlib\com\github\linyuzai\concept-connection-loadbalance-core\2.3.2\concept-connection-loadbalance-core-2.3.2.jar;D:\mysdk\mvnlib\com\github\linyuzai\concept-connection-loadbalance-autoconfigure\2.3.2\concept-connection-loadbalance-autoconfigure-2.3.2.jar;D:\mysdk\mvnlib\com\github\linyuzai\concept-connection-loadbalance-websocket\2.3.2\concept-connection-loadbalance-websocket-2.3.2.jar;D:\mysdk\mvnlib\org\springframework\kafka\spring-kafka\3.0.5\spring-kafka-3.0.5.jar;D:\mysdk\mvnlib\org\springframework\spring-context\6.0.7\spring-context-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\spring-tx\6.0.7\spring-tx-6.0.7.jar;D:\mysdk\mvnlib\org\springframework\retry\spring-retry\2.0.1\spring-retry-2.0.1.jar;D:\mysdk\mvnlib\org\apache\kafka\kafka-clients\3.3.2\kafka-clients-3.3.2.jar;D:\mysdk\mvnlib\com\github\luben\zstd-jni\1.5.2-1\zstd-jni-1.5.2-1.jar;D:\mysdk\mvnlib\org\lz4\lz4-java\1.8.0\lz4-java-1.8.0.jar;D:\mysdk\mvnlib\org\xerial\snappy\snappy-java\1.1.8.4\snappy-java-1.1.8.4.jar;D:\mysdk\mvnlib\io\micrometer\micrometer-observation\1.10.5\micrometer-observation-1.10.5.jar;D:\mysdk\mvnlib\io\micrometer\micrometer-commons\1.10.5\micrometer-commons-1.10.5.jar;D:\mysdk\mvnlib\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\mysdk\mvnlib\com\aliyun\aliyun-sdk-ha3engine-vector\1.1.1\aliyun-sdk-ha3engine-vector-1.1.1.jar;D:\mysdk\mvnlib\com\aliyun\tea-util\0.2.20\tea-util-0.2.20.jar;D:\mysdk\mvnlib\com\aliyun\darabonba-string\0.0.5\darabonba-string-0.0.5.jar;D:\mysdk\mvnlib\com\aliyun\darabonba-encode-util\0.0.2\darabonba-encode-util-0.0.2.jar;D:\mysdk\mvnlib\org\bouncycastle\bcprov-jdk15on\1.68\bcprov-jdk15on-1.68.jar;D:\mysdk\mvnlib\com\aliyun\darabonba-map\0.0.1\darabonba-map-0.0.1.jar;D:\mysdk\mvnlib\com\aliyun\tea\1.1.14\tea-1.1.14.jar;D:\mysdk\mvnlib\org\jacoco\org.jacoco.agent\0.8.4\org.jacoco.agent-0.8.4-runtime.jar;D:\mysdk\mvnlib\redis\clients\jedis\4.3.2\jedis-4.3.2.jar;D:\mysdk\mvnlib\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;D:\mysdk\mvnlib\com\google\code\gson\gson\2.9.1\gson-2.9.1.jar;D:\mysdk\mvnlib\io\jsonwebtoken\jjwt\0.9.1\jjwt-0.9.1.jar;D:\mysdk\mvnlib\javax\xml\bind\jaxb-api\2.3.0\jaxb-api-2.3.0.jar;D:\mysdk\mvnlib\com\squareup\okhttp3\okhttp-sse\4.10.0\okhttp-sse-4.10.0.jar;D:\mysdk\mvnlib\org\jetbrains\kotlin\kotlin-stdlib-jdk8\1.7.22\kotlin-stdlib-jdk8-1.7.22.jar;D:\mysdk\mvnlib\org\jetbrains\kotlin\kotlin-stdlib-jdk7\1.7.22\kotlin-stdlib-jdk7-1.7.22.jar;D:\mysdk\mvnlib\com\squareup\okhttp3\logging-interceptor\4.10.0\logging-interceptor-4.10.0.jar;C:\Users\nixer\AppData\Local\JetBrains\Toolbox\apps\IDEA-U\ch-0\232.9921.47\lib\idea_rt.jar com.npro.iai.IaiApplication
Connected to the target VM, address: '127.0.0.1:56521', transport: 'socket'
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )__ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' || .__|| ||| |_, | / / / /
=========||==============|/=////
:: Spring Boot :: (v3.0.5)
2023-12-06T17:43:02.506+08:00 INFO 22300 --- [ main] com.npro.iai.IaiApplication : Starting IaiApplication using Java 17.0.9 with PID 22300 (D:\mysdk\maoyou\iai\target\classes started by nixer in D:\mysdk\maoyou\iai)
2023-12-06T17:43:02.511+08:00 INFO 22300 --- [ main] com.npro.iai.IaiApplication : The following 1 profile is active: "dev"
2023-12-06T17:43:03.642+08:00 INFO 22300 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2023-12-06T17:43:03.646+08:00 INFO 22300 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2023-12-06T17:43:03.687+08:00 INFO 22300 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 21 ms. Found 0 Redis repository interfaces.
2023-12-06T17:43:04.543+08:00 INFO 22300 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8083 (http)
2023-12-06T17:43:04.556+08:00 INFO 22300 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-12-06T17:43:04.556+08:00 INFO 22300 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.7]
2023-12-06T17:43:04.696+08:00 INFO 22300 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-12-06T17:43:04.697+08:00 INFO 22300 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2104 ms
2023-12-06T17:43:05.873+08:00 INFO 22300 --- [ main] f.a.AutowiredAnnotationBeanPostProcessor : Autowired annotation should only be used on methods with parameters: public void com.npro.iai.service.impl.MeerkAtServiceImpl.setClient()
2023-12-06T17:43:06.520+08:00 INFO 22300 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [templates/index.html]
2023-12-06T17:43:07.118+08:00 INFO 22300 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8083 (http) with context path ''
2023-12-06T17:43:07.133+08:00 INFO 22300 --- [ main] com.npro.iai.IaiApplication : Started IaiApplication in 5.269 seconds (process running for 6.307)
2023-12-06T17:43:07.216+08:00 INFO 22300 --- [ task-3] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
2023-12-06T17:43:23.556+08:00 INFO 22300 --- [nio-8083-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-12-06T17:43:23.557+08:00 INFO 22300 --- [nio-8083-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2023-12-06T17:43:23.558+08:00 INFO 22300 --- [nio-8083-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
Open {_selector_user_id=403b852a-c873-4702-8bc5-4c148c8b0eec}
Close {_selector_user_id=403b852a-c873-4702-8bc5-4c148c8b0eec}
Open {_selector_user_id=685b1e07-9890-4e72-8fb2-846053ecea32}
Close {_selector_user_id=685b1e07-9890-4e72-8fb2-846053ecea32}
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
Open {_selector_user_id=cc41b427-c7b2-491c-ab8c-7140a9e1f446}
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
Close {_selector_user_id=cc41b427-c7b2-491c-ab8c-7140a9e1f446}
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
Open {_selector_user_id=2c664116-af0b-419c-8eff-f20daccc16a6}
Close {_selector_user_id=2c664116-af0b-419c-8eff-f20daccc16a6}
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
=======================!toolcode===================
=======================!black!niger===================
=======================!tools===================
from concept.
iai-websocket (2).zip
我重新写了一个项目 然后依然能复先这个问题
from concept.
找到原因了,你把close的原因打印出来就能看到了
@Component
public class WebSocketParams implements WebSocketLifecycleListener {
@Override
public void onEstablish(Connection connection, ConnectionLoadBalanceConcept concept) {
((ServletWebSocketConnection) connection).getSession().setTextMessageSizeLimit(15000000);
((ServletWebSocketConnection) connection).getSession().setBinaryMessageSizeLimit(15000000);
}
@Override
public void onClose(Connection connection, Object reason, ConnectionLoadBalanceConcept concept) {
}
}
应该也可以统一配置WebSocketContainer
,不过我没试
from concept.
好的我先观察一下
from concept.
找到原因了,你把close的原因打印出来就能看到了
@Component public class WebSocketParams implements WebSocketLifecycleListener { @Override public void onEstablish(Connection connection, ConnectionLoadBalanceConcept concept) { ((ServletWebSocketConnection) connection).getSession().setTextMessageSizeLimit(15000000); ((ServletWebSocketConnection) connection).getSession().setBinaryMessageSizeLimit(15000000); } @Override public void onClose(Connection connection, Object reason, ConnectionLoadBalanceConcept concept) { } }应该也可以统一配置
WebSocketContainer
,不过我没试
用这个配置可以改大小限制
from concept.
非常感谢 测试有效 错误也看到了
The decoded text message was too big for the output buffer and the endpoint does not support partial messages
from concept.
Related Issues (20)
- springboot3.0 集成rabbit订阅兼容问题 concept-netty-loadbalance-spring-boot-starter HOT 1
- 当发送base64文件在消息中时socket会被关闭 HOT 2
- 使用RABBIT_FANOUT转发消息解析异常 HOT 3
- 启动多个服务实例,实例之间无法连接 HOT 11
- 支持不用注册中心的版本吗? HOT 1
- 使用websocket网关服务报readAddress(..) failed: Connection reset by peer HOT 12
- 长文本支持要怎么设置 HOT 1
- 异步回调转为同步返回 HOT 5
- 发现发送消息会一直占用 发生java.lang.OutOfMemoryError: Java heap space HOT 12
- 消息转发json转义 HOT 13
- websocket连接过多 HOT 2
- 如何主动关闭集群其它机器的 websocket 连接 HOT 2
- springboot3.2.4 Download组件报错 HOT 2
- SpringBoot 3.2.5 Download组件报错
- 自身实例去连接其他实例时报404 HOT 8
- 如果有server.servlet.context-path的话会导致自身实例连接订阅其他实例失败且PathMessage全部变成死信消息导致接收不到 HOT 3
- 批量发送concept.send(..) HOT 1
- concept-downlaod 下载文件可以指定目录么, HOT 7
- concept-downlaod可以下载到服务器指定路径 HOT 34
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from concept.