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

JavaScript016

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文件,也引用了这个加载超时的文件以后称为此文件,但是,这两个文件中因为此文件的路径写的不一致,例如一个文件中写的是在requirejs配置文件中配置的此文件的而另一个文件中写的是关于此文件的相对路径或者全。

解决方法所以,将他们引用此文件的方式改为一致即可。注意各个模块引用同一个文件的方式要一致。若是一个公共文件,在requirejs的配置文件中做了配置,那么其他模块在引入时都按照requirejs的配置文件的方式来引用,否则,可能会造成在一个页面中出现同一个文件的两种不同引用方式。