Hei, próbuję użyć socket.io z domenami krzyżowymi. Na przykład powiedzmy, domeny to: https://client.domain.com i https://server.domain.com. Mój kod po stronie klienta wygląda następująco: po stroniesocket.io ciągle próbuje użyć pollingu na niewłaściwym adresie
socket = io.connect("https://server.domain.com");
socket.on("connect", function() {
console.log("socketio Connected to server!");
});
socket.emit("test", {"test":"test"});
i serwer:
var fs = require('fs');
var https = require('https');
var express = require('express');
var socketIO = require('socket.io');
var app = express();
// Settings
var serverOptions = {
key: fs.readFileSync('privkey1.pem'),
cert: fs.readFileSync('cert1.pem')
};
var serverPort = 443;
// Logic
var server = https.createServer(serverOptions, app);
var io = socketIO(server);
io.on('connection', function(socket) {
socket.on("test", function(data) {
console.log(data);
});
});
server.listen(serverPort, function() {
console.log('server up and running at %s port', serverPort);
});
Wszystko działa, wiadomości wysyłane tam iz powrotem. Ale niektóre reasone socket.io nadal próbuje użyć sondowania i na niewłaściwej domenie. Prawie co drugi widzę te żądania:
Request URL:https://client.domain.com/socket.io/?EIO=3&transport=polling&t=1452418594321-145
Request Method:GET
Status Code:302 OK
Dlaczego to robi socket.io i jak mogę to wyłączyć?
EDYCJA: ciekawsze jest to, że jeśli skomentuję cały kod związany z gniazdem socket.io i pozostawię tylko w <script src="https://server.domain.com/socket.io/socket.io.js"></script>
, nadal będzie wysyłane te żądania HTTP opisane wcześniej.
EDIT2: Nie jestem pewien, czy to spowoduje jakąkolwiek różnicę, ale w rzeczywistości domeny nie są subdomenami jednej domeny. Są to: https://clientdomain.com
i https://serverdomain.com
.
Twój html jest wyświetlany z 'client.domain.com', prawda? – cviejo
Nie można tego zreplikować. Nie widzę też żadnych próśb, zanim najpierw zadzwonię do 'io.connect' .... – cviejo
spróbuj uruchomić serwer z informacjami debugowania' 'DEBUG = socket.io * node myapp'' –