【问题标题】:Connect to Rcon using WebSockets (ws)使用 WebSockets (ws) 连接到 Rcon
【发布时间】:2019-07-15 01:00:56
【问题描述】:

我是在我的 electronjs 项目中使用 nodejs 中的 web 套接字的新手。我的目标是连接到我的服务器正在运行的连接,我已经正确设置了所有内容,端口、密码和 localhost,似乎都可以使用另一个包。但是当我尝试自己创建它时,我似乎无法让它工作。

const WebSocket = require('ws');

serverip = 'localhost';
serverport = 25575;
serverpass = 'password';
const ws = new WebSocket('ws://' + serverip + ':' + serverport + '/' + serverpass + '/');

ws.on('open', function open() {
    ws.send('/kick Player');
});

ws.on('message', function incoming(data) {
    console.log(data);
});

ws.on('close', function close() {
    console.log('disconnected');
});

以上是我目前所拥有的,我尝试连接的服务器上的控制台说它正在从我的电脑获得连接,但除此之外没有中继任何信息。

Server Output:
Rcon connection from: /127.0.0.1

这是我在 electronjs 控制台中遇到的错误:

Uncaught Error: socket hang up
    at createHangUpError (_http_client.js:334)
    at Socket.socketOnEnd (_http_client.js:435)
    at Socket.emit (events.js:199)
    at endReadableNT (_stream_readable.js:1141)
    at processTicksAndRejections (internal/process/task_queues.js:81)

任何帮助将不胜感激。

【问题讨论】:

  • 项目是否开源?
  • 不,目前还没有,需要服务器和 java 才能运行。我在项目目录中有 java 可执行文件,所以我真的无法上传它。请记住,这一切都是在 electronjs 中完成的
  • 谢谢你让我知道。我什至还没有把它上传到 GitHub,我想在我把它开源之前让它发挥作用。然后我需要为用户创建一堆后端功能。但这是我坚持的部分。

标签: node.js websocket electron remote-connection ws


【解决方案1】:

当我自己尝试 WebSocket 一个简单的 Source RCON 时,有几个问题。幸运的是,我下面的代码编译得很好。

var serverip = 'RconHost';
var serverport = 28016;
var serverpass = 'RconPassword';
    
const ws = new WebSocket('ws://' + serverip + ':' + serverport + '/' + serverpass);
console.log(ws);
    
ws.onopen = function(event) {
    console.log("WebSocket is onopen now.");
};
    
ws.onmessage = function(event) {
    console.log("WebSocket is onmessage now.");
};
    
ws.onclose = function(event) {
    console.log("WebSocket is onclose now.");
};

未捕获的错误:套接字挂起 在 createHangUpError (_http_client.js:334) 在 Socket.socketOnEnd (_http_client.js:435) 在 Socket.emit (events.js:199) 在 endReadableNT (_stream_readable.js:1141) 在 processTicksAndRejections (internal/process/task_queues.js:81)

... 看起来像一个无法访问的主机。 URL 中的尾部正斜杠有问题。

【讨论】:

    【解决方案2】:

    ws:// => wss://

    const ws = new WebSocket('wss://' + serverip + ':' + serverport + '/' + serverpass + '/');
    
    const ws = new WebSocket('ws://' + serverip + ':' + serverport + '/' + serverpass + '/');
    

    【讨论】:

    • 您好,欢迎来到 Stack Overflow,请考虑详细说明您的答案。
    • 您好,欢迎来到 SO!请阅读tourHow do I write a good answer? 例如,您可以详细说明它如何以及为什么解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2023-04-01
    • 2017-10-25
    相关资源
    最近更新 更多