Nodejs的WebSocket模块怎么设置连接超时时间

Nodejs的WebSocket模块怎么设置连接超时时间,第1张

在建立socket连接时可以很容易设置socket通信的发送和接收超时时间,但是在建立socket通信时,如果是Win98系统,则如果连接失败,则程序会一直等待在哪里,Windows2000默认超时时间是30秒,当然,这个超时时间不算长,但是加入我们要循环扫描一系列端口并且建立连接的话,总的等待时间就会让人忍受不了,下面就以delphi为例进行说明,如何在建立socket的时候设置其超时时间:

//连接,发送和接收时间都设为2秒

SctTimeOut := 2000

//设置接收数据通信超时

setsockopt(hSock,SOL_SOCKET,SO_RCVTIMEO,@SctTimeOut,SizeOf(Integer))

//设置发送数据通信超时

setsockopt(hSock,SOL_SOCKET,SO_SNDTIMEO,@SctTimeOut,SizeOf(Integer))

//首先,设置通讯为非阻塞模式

dwArg := 1

RecvLen := ioctlsocket(hSock,FIONBIO,dwArg)

//其次,连接服务器

ZeroMemory(@addr, sizeof(addr))

addr.sin_family := AF_INET

addr.sin_addr.S_addr := inet_addr(pchar(SvrIP))

addr.sin_port := htons(Strtoint(SvrPort))

RecvLen := 0

RecvLen := connect(hSock, addr, sizeof(addr))

//再次,设置连接超时时间为2秒

tmOut.tv_sec := 2

tmOut.tv_usec := 0

FD_ZERO(recvSet)

FD_SET(hSock, recvSet)

RecvLen := select(0, @recvSet, @recvSet, nil, @tmOut)

//连接失败,报错误信息

if (RecvLen = 0) or (RecvLen = SOCKET_ERROR) then

begin

ErrMsg := '连接服务器失败!'

exit

end

//最后,设置通讯为阻塞模式

dwArg := 0

RecvLen := ioctlsocket(hSock,FIONBIO,dwArg)

//end modify

引用链接,加载js超时需要修改配数。

brrequireJs的加载是一种异步机制,它加载js的时候有个默认的超时机制,因为网络原因或者资源找不到等原因引起的。

可以修改配置参数waitSeconds默认为7秒,可以设置为0表示永远不超时,或者大一点的数字,一般情况加载超时是静态资源过大造成或者是加载网络资源阻断。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11190780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存