0
從我所瞭解的(如果我錯了,請糾正我),在tomcat中按順序處理傳入的websocket消息。這意味着如果您在一個websocket中有100個傳入消息,它們將僅使用從消息1到消息100的一個線程逐個進行處理。在tomcat中使用多線程處理websocket消息消息
但這不適用於我。我需要在websocket中同時處理傳入的消息以增加我的websocket吞吐量。進入的消息不依賴於彼此,因此不需要按順序處理。
問題是如何配置tomcat,以便它可以爲每個websocket分配多個工作線程以同時處理傳入的消息?
任何提示表示讚賞。
這是在tomcat code,我認爲這是每個WebSocket連接阻塞(這是有道理的):
/**
* Called when there is data in the ServletInputStream to process.
*
* @throws IOException if an I/O error occurs while processing the available
* data
*/
public void onDataAvailable() throws IOException {
synchronized (connectionReadLock) {
while (isOpen() && sis.isReady()) {
// Fill up the input buffer with as much data as we can
int read = sis.read(
inputBuffer, writePos, inputBuffer.length - writePos);
if (read == 0) {
return;
}
if (read == -1) {
throw new EOFException();
}
writePos += read;
processInputBuffer();
}
}
}