WebSocket 连接失败:连接建立时出错:net::ERR_CONNECTION_TIMED_OUT
WebSocket connection to failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
大家好
我正在使用棘轮构建一个聊天应用程序并将数据保存到 mysql 数据库。在本地主机上一切正常,连接已建立。
现在我已经在实时服务器上加载应用程序并使用 SSH (Putty) 登录,然后导航到 php bin/chat-server.php
然后在浏览器控制台上我收到此错误:
WebSocket connection to 'wss://donorgametes.com:8080/' failed: Error
in connection establishment: net::ERR_CONNECTION_TIMED_OUT
这是我的url应用程序
https://donorgametes.com/MyApp/
我的代码:
<script>
var conn = new WebSocket('wss://donorgametes.com:8080');
conn.onopen = function (e) {
console.log("Connection established!");
};
conn.onmessage = function (e) {
showMessage(e.data, 'Others');
};
document.querySelector('#chat-form').addEventListener('submit', function (e) {
e.preventDefault();
var messageElement = document.querySelector('#message');
var message = messageElement.value;
var messageData = {
'userId': '12',
'content': message
}
var messageDataJson = JSON.stringify(messageData);
conn.send(JSON.stringify(messageDataJson));
showMessage(message, 'Me');
messageElement.value = '';
});
function showMessage(msg, sender) {
var messageItem = document.createElement('li');
var className = 'list-group-item';
if (messageItem.classList)
messageItem.classList.add(className);
else
messageItem.className += ' ' + className;
messageItem.innerHTML = '<strong>' + sender + ': </strong>' + msg;
document.querySelector('#chat-area > ul').appendChild(messageItem);
}
</script>
聊天服务器
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;
require dirname(__DIR__) . '/vendor/autoload.php';
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8080
);
$server->run();
如何在实时服务器上 运行 并建立连接?我必须遵循哪些步骤?
在您的网站上,您使用的是不同的端口 (35814)。
因此,设置正确的参数可能会有些混乱。
<script>
var conn = new WebSocket('wss://donorgametes.com:35814');
conn.onopen = function (e) {
console.log("Connection established!");
};
conn.onmessage = function (e) {
showMessage(e.data, 'Others');
};
document.querySelector('#chat-form').addEventListener('submit', function (e) {
e.preventDefault();
var messageElement = document.querySelector('#message');
var message = messageElement.value;
var messageData = {
'userId': '12',
'content': message
}
var messageDataJson = JSON.stringify(messageData);
conn.send(JSON.stringify(messageDataJson));
showMessage(message, 'Me');
messageElement.value = '';
});
function showMessage(msg, sender) {
var messageItem = document.createElement('li');
var className = 'list-group-item';
if (messageItem.classList)
messageItem.classList.add(className);
else
messageItem.className += ' ' + className;
messageItem.innerHTML = '<strong>' + sender + ': </strong>' + msg;
document.querySelector('#chat-area > ul').appendChild(messageItem);
}
</script>
显示的错误适合脚本中的端口:
(index):38 WebSocket connection to 'wss://donorgametes.com:35814/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
检查您的应用程序页面源后,我发现您正在使用 localhost
进行连接,行号:38
var conn = new WebSocket('wss://localhost:8080');
错了,你应该使用自己的域名。
第二件事是检查您域上的端口转发后,我发现端口 8080
现在被阻止了。因此,您最好让您的托管服务提供商在 IPTABLES
中为传入连接打开端口,或者如果您有 root 访问权限,那么试试这个 Article 它可能会帮助您允许端口转发。
大家好
我正在使用棘轮构建一个聊天应用程序并将数据保存到 mysql 数据库。在本地主机上一切正常,连接已建立。
现在我已经在实时服务器上加载应用程序并使用 SSH (Putty) 登录,然后导航到 php bin/chat-server.php
然后在浏览器控制台上我收到此错误:
WebSocket connection to 'wss://donorgametes.com:8080/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
这是我的url应用程序
https://donorgametes.com/MyApp/
我的代码:
<script>
var conn = new WebSocket('wss://donorgametes.com:8080');
conn.onopen = function (e) {
console.log("Connection established!");
};
conn.onmessage = function (e) {
showMessage(e.data, 'Others');
};
document.querySelector('#chat-form').addEventListener('submit', function (e) {
e.preventDefault();
var messageElement = document.querySelector('#message');
var message = messageElement.value;
var messageData = {
'userId': '12',
'content': message
}
var messageDataJson = JSON.stringify(messageData);
conn.send(JSON.stringify(messageDataJson));
showMessage(message, 'Me');
messageElement.value = '';
});
function showMessage(msg, sender) {
var messageItem = document.createElement('li');
var className = 'list-group-item';
if (messageItem.classList)
messageItem.classList.add(className);
else
messageItem.className += ' ' + className;
messageItem.innerHTML = '<strong>' + sender + ': </strong>' + msg;
document.querySelector('#chat-area > ul').appendChild(messageItem);
}
</script>
聊天服务器
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;
require dirname(__DIR__) . '/vendor/autoload.php';
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8080
);
$server->run();
如何在实时服务器上 运行 并建立连接?我必须遵循哪些步骤?
在您的网站上,您使用的是不同的端口 (35814)。
因此,设置正确的参数可能会有些混乱。
<script>
var conn = new WebSocket('wss://donorgametes.com:35814');
conn.onopen = function (e) {
console.log("Connection established!");
};
conn.onmessage = function (e) {
showMessage(e.data, 'Others');
};
document.querySelector('#chat-form').addEventListener('submit', function (e) {
e.preventDefault();
var messageElement = document.querySelector('#message');
var message = messageElement.value;
var messageData = {
'userId': '12',
'content': message
}
var messageDataJson = JSON.stringify(messageData);
conn.send(JSON.stringify(messageDataJson));
showMessage(message, 'Me');
messageElement.value = '';
});
function showMessage(msg, sender) {
var messageItem = document.createElement('li');
var className = 'list-group-item';
if (messageItem.classList)
messageItem.classList.add(className);
else
messageItem.className += ' ' + className;
messageItem.innerHTML = '<strong>' + sender + ': </strong>' + msg;
document.querySelector('#chat-area > ul').appendChild(messageItem);
}
</script>
显示的错误适合脚本中的端口:
(index):38 WebSocket connection to 'wss://donorgametes.com:35814/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
检查您的应用程序页面源后,我发现您正在使用 localhost
进行连接,行号:38
var conn = new WebSocket('wss://localhost:8080');
错了,你应该使用自己的域名。
第二件事是检查您域上的端口转发后,我发现端口 8080
现在被阻止了。因此,您最好让您的托管服务提供商在 IPTABLES
中为传入连接打开端口,或者如果您有 root 访问权限,那么试试这个 Article 它可能会帮助您允许端口转发。