【发布时间】:2017-12-28 03:46:39
【问题描述】:
我的问题与问题类似:How to recieve log from SRCDS in node.js,但问题是上面链接中表示的解决方案并不能解决我的问题。
所以,我有运行 cs:go 实例和运行 NodeJS 的 SRCDS(源专用服务器)。
为了向 NodeJS 发送日志,我在 SRCDS 的控制台中添加:
log on
logaddress_add myAddress:myPort
在这种情况下,myAddress:myPort 是 127.0.0.1:8006。
为了使用 NodeJS 捕获发送的日志,我使用了以下代码:
var dgram = require('dgram'),
server = dgram.createSocket('udp4');
server.on('message', function (message, rinfo) {
var msg = message.toString('ascii').slice(5,-1);
console.log(msg);
});
server.on('listening', function () {
var address = server.address();
console.log('UDP Server listening ' + address.address + ':' + address.port);
});
server.bind({
address: 'localhost',
port: 8006,
exclusive: true
});
问题是这种方法与 CS (Counter-Strike) 1.6 完美配合。
即使我尝试从本地服务器(不是 SRCDS)发送日志(通过键入 log on 和 logaddress_add myAddress:myPort(在本例中为 127.0.0.1:8006))它也不起作用。
【问题讨论】:
-
你能描述一下
it does not work吗?什么都没有发生?你能确认 srcds 实际上是在发送日志数据包吗?您是否在路由器后面(或者,srcds 与您的服务器在同一子网上)?你的输出是什么样的? -
一般情况下,什么都不会发生。我无法确认来自 srcds 的日志是否已发送(我正在考虑但我不知道如何测试它),但我可以确认它们已写入。我和我的服务器在同一个子网中,所以我不认为我在我的路由器后面。输出示例:L 11/18/2015 - 00:01:17:“Chet
”已连接,地址“”L 11/18/2015 - 00:01:17:“Chet ”从团队 切换到 L 11/18/2015 - 00:01:17:世界触发“Game_Commencing” L 11/18/2015 - 00:01:17:“Chet ”进入游戏 -
您可以使用wireshark 来确认他们正在发送吗?过滤器
udp && udp.port == 8006应该足够了。 -
@Qix 将您的评论标记为有用的,抱歉反应迟了
标签: node.js