Jetty Web 套接字超时
Jetty Web Socket Timeout
我正在尝试使用 Jetty 9.3.0 RC 建立 Web 套接字连接。
function checkDetails(port) {
var ws = new WebSocket("ws://localhost:9995/application");
ws.onopen = function(event) {
console.log("onopen called...");
}
ws.onerror = function(event){
console.log('onerror called...');
}
ws.onmessage = function(event) {
console.log("onmessage called..." + event.data);
}
ws.onclose = function(event) {
console.log("onclose called..." + port);
console.log(event);
ws.close();
}
}
如果用于创建 Web 套接字连接的 端口 9995 未被其他进程占用,则代码工作正常。
var ws = new WebSocket("ws://localhost:9995/application");
但是如果端口被其他进程占用,那么它将继续尝试与该端口连接,直到端口被释放。
我需要提供超时,这样如果端口在 3 分钟内没有响应,Web 套接字应该释放(或停止侦听)端口并显示控制台日志。
请告诉我实现此目的的最简单方法。
您正在从客户端连接到某个网络套接字。如果端口(在您的情况下为 9995)可用于连接,则意味着某些程序(在服务器模式下)正在侦听和响应。并做一些事情 - 用一些数据回答。因此,您可以连接到这样的程序(如果它存在并回答),或者如果没有端口 9995 的服务器侦听器则不能连接。当您通过其他进程说 "port is occupied" 时,这意味着该进程存在并回答。这个过程将以它设计的任何东西来回应。因此,从客户端,您所做的就是连接到现有的 运行 进程,该进程在服务器模式下侦听此端口。仅此而已。
但是,如果我们忽略您关于 OP 仅与客户端有关的评论,那么我的第一个建议是查看服务器配置并检查它是否处于多线程模式并且可以一次回答和处理多个请求。你所描述的看起来你有单线程进程,它只处理一个请求,并且可以在当前完成时回答下一个请求。这听起来像 "process occupied"。但既然评论坚持说我们只是在谈论客户端,那么这种猜测就没有必要了。
我正在尝试使用 Jetty 9.3.0 RC 建立 Web 套接字连接。
function checkDetails(port) {
var ws = new WebSocket("ws://localhost:9995/application");
ws.onopen = function(event) {
console.log("onopen called...");
}
ws.onerror = function(event){
console.log('onerror called...');
}
ws.onmessage = function(event) {
console.log("onmessage called..." + event.data);
}
ws.onclose = function(event) {
console.log("onclose called..." + port);
console.log(event);
ws.close();
}
}
如果用于创建 Web 套接字连接的 端口 9995 未被其他进程占用,则代码工作正常。
var ws = new WebSocket("ws://localhost:9995/application");
但是如果端口被其他进程占用,那么它将继续尝试与该端口连接,直到端口被释放。
我需要提供超时,这样如果端口在 3 分钟内没有响应,Web 套接字应该释放(或停止侦听)端口并显示控制台日志。
请告诉我实现此目的的最简单方法。
您正在从客户端连接到某个网络套接字。如果端口(在您的情况下为 9995)可用于连接,则意味着某些程序(在服务器模式下)正在侦听和响应。并做一些事情 - 用一些数据回答。因此,您可以连接到这样的程序(如果它存在并回答),或者如果没有端口 9995 的服务器侦听器则不能连接。当您通过其他进程说 "port is occupied" 时,这意味着该进程存在并回答。这个过程将以它设计的任何东西来回应。因此,从客户端,您所做的就是连接到现有的 运行 进程,该进程在服务器模式下侦听此端口。仅此而已。
但是,如果我们忽略您关于 OP 仅与客户端有关的评论,那么我的第一个建议是查看服务器配置并检查它是否处于多线程模式并且可以一次回答和处理多个请求。你所描述的看起来你有单线程进程,它只处理一个请求,并且可以在当前完成时回答下一个请求。这听起来像 "process occupied"。但既然评论坚持说我们只是在谈论客户端,那么这种猜测就没有必要了。