こんにちはみんな
ラチェットを使用してチャットアプリを作成し、データをmysqlデータベースに保存しています。 localhostでは、すべてが正常に機能しており、接続が確立されています。
これで、アプリをライブサーバーに読み込み、SSH(PuTTY)を使用してログインし、php bin/chat-server.php
に移動して、ブラウザーコンソールで次のエラーを取得しました。
「wss://donorgametes.com:8080 /」へのWebSocket接続に失敗しました:接続の確立でエラーが発生しました: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>
表示されるエラーは、スクリプトのポートに適合しています。
(インデックス):38「wss://donorgametes.com:35814 /」へのWebSocket接続に失敗しました:接続の確立でエラーが発生しました:net :: ERR_CONNECTION_TIMED_OUT