我正在制作一个RESTful网络服务&为此,我使用node.js. 在我的Web服务中,我需要一个套接字来发送一些数据,以便套接字可以继续处理该数据并在每30秒后响应一次。所以,我使用" ws"节点包可以接受数据作为消息,我可以继续。
现在的问题是......
每当我关闭我的连接时,旧的进程将继续工作。
就像我每30秒发送变量first response is : 1
after 30 seconds : 2
after 30 seconds : 3
after 30 seconds : 4
after 30 seconds : 5
值一样,每次递增
像
first response is : 1
after 30 seconds : 6
after 30 seconds : 2
after 30 seconds : 7
after 30 seconds : 3
after 30 seconds : 8
after 30 seconds : 4
after 30 seconds : 9
after 30 seconds : 5
after 30 seconds : 10
after 30 seconds : 6
after 30 seconds : 11
after 30 seconds : 7
after 30 seconds : 12
after 30 seconds : 8
现在,如果我将关闭插座&重新打开然后会发给我一些像......
Private pName As String
Public Property Get Name() As String
Name = pName
End Property
Public Property Let Name(value As String)
pName = value
End Property
所以,正如你在这里看到的,它首先发送新数据1然后从5继续旧过程,所以它返回6然后2&然后7 .....
我认为这是因为node.js的多线程概念。持有旧数据以及使用新数据。
所以请任何人帮我解决问题。
答案 0 :(得分:0)
实际上Node中没有多线程(有底层但没有在JavaScript层中)。因此,您无法终止任何线程,因为您只有一个可以使用的线程,并且您只能使用process.exit()
终止它,这不是您想要的。
如果没有看到你的代码的一行,我只能推测,但似乎你没有重置你的setInterval函数。您似乎也在为所有套接字使用某种共享全局状态。除了停止你的setIntervals和/或取消套接字断开连接的超时,并且如果那不是你想要的所有套接字,也没有使用一个全局状态,除此之外我别无其他了。
下次添加一些代码示例。