Code Monkey home page Code Monkey logo

Comments (16)

Linyuzai avatar Linyuzai commented on June 25, 2024 1

用的tomcat吗,后端有异常信息吗,我这边好像没有复现

我晚点用你的demo试下

from concept.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

在OnMessage的时候

from concept.

Linyuzai avatar Linyuzai commented on June 25, 2024

在OnMessage的时候

服务端发给客户端还是客户端发给服务,数据量大概是多大

from concept.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

客户端发给服务端 目前发送大概在15k左右

from concept.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

代码如下
@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.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

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;
}

</script>

from concept.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

image
发送后截图

from concept.

Linyuzai avatar Linyuzai commented on June 25, 2024

用的tomcat吗,后端有异常信息吗,我这边好像没有复现

from concept.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

好的麻烦了 直接用的springboot 3.0.5
设置了
server:
port: 8083
tomcat:
max-http-form-post-size:50MB
没有什么效果

from concept.

Linyuzai avatar Linyuzai commented on June 25, 2024

服务端没有任何报错吗

from concept.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

没有 就是显示关闭了我发下日志

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.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

iai-websocket (2).zip
我重新写了一个项目 然后依然能复先这个问题

from concept.

Linyuzai avatar Linyuzai commented on June 25, 2024

找到原因了,你把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.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

好的我先观察一下

from concept.

Linyuzai avatar Linyuzai commented on June 25, 2024

找到原因了,你把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.

NixerSo5 avatar NixerSo5 commented on June 25, 2024

非常感谢 测试有效 错误也看到了
The decoded text message was too big for the output buffer and the endpoint does not support partial messages

from concept.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.