외부 도메인에서 내 node.js 서버에 연결할 수없는 데 문제가 있습니다. 노드를 통해 http 웹 서버를 사용하여 로컬에서 실행하면 외부에서 연결할 때 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
나는 그것이에서 포트를 제거 할 수 있도록하는 방법을 잘 모르겠어요 연결. 이 문제를 해결하려면 어떻게해야합니까?
SERVER
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`);
});
CLIENT 스크립트 TAG 다른 도메인 ON
<script src="http://external-domain.com:3000/socket.io/socket.io.js"></script>
CLIENT JS
var socket = io();
socket.connect('http://external-domain.com:3000');
socket.on('connect', function() {
console.log('Connected to server.');
});
와우, 작동합니다. 감사합니다. 그냥 궁금 해서요, 둘 사이의 차이점은 무엇입니까? – FirstLegion
@FirstLegion - 자세한 설명이 내 답변에 추가되었습니다. – jfriend00
지금은 의미가 있습니다. 감사합니다. – FirstLegion