外部ドメインからnode.jsサーバーに接続できない場合があります。それはノードを介してHTTP Webサーバーを使用してローカルで実行するときにうまく動作しますが、外部から接続するときはsocket.io.js
ファイルを読み込みますが、ソケットを使用しようとするとURLからポートを削除して接続できません。クライアントがsocket.ioを使用してサーバーに接続できません
代わりにネットワーク要求にこれを行う:
http://external-domain.com:3000/socket.io/?EIO=3&transport=polling&t=M06GOUU
それがないこの:
http://external-domain.com/socket.io/?EIO=3&transport=polling&t=M06GOUU
私はそれからポートを削除しないようにする方法をわかりません接続。これを修正するにはどうすればいいですか?
サーバ
const path = require('path');
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');
const publicPath = path.join(__dirname, '../public');
var app = express();
var server = http.createServer(app);
var io = socketIO(server);
app.use(express.static(publicPath));
server.listen(3000,() => {
console.log(`Server is up on port 3000`);
});
クライアントスクリプトタグ
<script src="http://external-domain.com:3000/socket.io/socket.io.js"></script>
CLIENT JSあちこちに、別のドメインON
var socket = io();
socket.connect('http://external-domain.com:3000');
socket.on('connect', function() {
console.log('Connected to server.');
});
ああ、うわー、それは動作します、ありがとう!ちょうど興味があります、両者の違いは何ですか? – FirstLegion
@FirstLegion - 私の答えに詳しい説明が追加されました。 – jfriend00
感謝しています。ありがとうございました! – FirstLegion