我正在尝试对服务器代码(非http,自定义协议)进行单元测试。我需要创建一个模拟双工套接字,以便异步向其发送消息并从中接收消息。
我已经从事件流readArray和writeArray创建了一个双工流,取得了一些微小的成功,但readArray需要预先准备好数据,而writeArray直到流结束才会启动。我需要随着时间的推移进行测试。理想的解决方案是将两个双工套接字连接在一起。
有什么现有的解决方案吗?我宁愿不必通过初始化一个实际的服务器来测试这一点。
Node Mitm实际上可以很好地做到这一点。它不仅可以拦截和模拟HTTP,还可以拦截和模仿任何TCP连接。
mitm.on("connection", function(socket) { socket.write("Hello back!") })
var socket = Net.connect(22, "example.org")
socket.write("Hello!")
socket.setEncoding("utf8")
socket.read() // => "Hello back!"