我想创建node.js TCP套接字,接收数据,修改数据,然后将其发回。我用这个答案作为我的例子:https://stackoverflow.com/a/24876432/1945451它就是这样完美的工作,但是当我添加自己的代码发送数据后,它只能在第一次使用。node.js TCP套接字接收数据并发送修改后的数据只有第一次工作
我添加的代码:
conn.on('data', function(data) {
console.log('ECHO_SERVER: CONN: GOT DATA: ' + data);
//ADDED PART STARTS HERE
data = Number(data);
api.requestMatchDetails(data);
api.on("matchDetailsData", function (matchId, matchData) {
var modData = "..." + matchData.match.something + "...";
conn.write(modData);
});
//ADDED PART ENDS HERE
});
添加代码的TCP套接字开始只在第time.The第一次工作通缉工作这一部分之后,但在第二次它抛出这个错误:
错误:此插座已经被对方
结束,并指出这条线:
conn.write(modData);
什么客户端部分做:
1. Opens connection
2. Sends data
3. Waits for response
4. Closes socket.
我希望服务器部分做的:
1. Wait for connection
2. Accept connection
3. Receive data
4. Modify data
5. Send back data.
6. Close connection
7. Wait for more connections.
服务器部分只需要一秒钟完成的一切,所以我可以保证有赢得”一次连接超过1个连接。
在此先感谢!
只是为了方便参考,您能否发布完整的服务器代码? – dm03514
@ dm03514 我不确定你是否需要它,当我将TCP套接字示例添加到我的整个程序中时,它工作正常,它只是在我添加了我的问题中提到的这些行后停止工作。开始 - 添加部分从此处开始,以 - ADDED PART ENDS HERE结尾。通过使用方法requestMatchDetails(data)和事件处理程序的方式未在我的代码中声明。我正在使用node-dota2(https://github.com/RJacksonm1/node-dota2) – ESipalis