重新连接到不同的IP后,Socket.remoteAddress不会更新

时间:2016-03-14 09:15:44

标签: node.js sockets node-webkit

我正在编写NWJS应用程序,它通过TCP与测量传感器通信。我正在使用一个套接字实例。建立连接(连接事件)时,我使用remoteAddress属性显示我当前连接的传感器的IP地址。

问题:

  • 我连接到IP地址上的传感器让我们说A,remoteAddress和_host套接字属性都是正确的。
  • 我使用socket.destroy()
  • 断开传感器
  • 我将应用程序连接到IP地址B上的另一个传感器然后出现问题 - remoteAddress属性显示错误的以前的地址A但_host属性显示B

重现的最小步骤(交互式nodejs控制台):

 net = require('net')
 socket = new net.Socket()
 socket.connect("192.168.0.20", 1028)

 //socket.remoteAddress is 192.168.0.20, socket._host is 192.168.0.20, 

 socket.destroy()

 //later
 socket.connect("192.168.0.17", 1028)

 //socket.remoteAddress is 192.168.0.20, socket._host is 192.168.0.17

我可以通过每次创建传感器套接字的新实例或使用_host属性来解决这个问题,但是想讨论这种行为的原因(bug?)

0 个答案:

没有答案