php - elephant - nodo Socket.io vincula cómo se dará en el servidor no localhost(wamp/xampp)
elephant io (3)
Soy nuevo en la sesión de socket pero aprendí cómo funcionará en wamp / xampp localhost. Pero cuando me muevo al servidor que aloja. no funcionará.
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
Sobre este trabajo en wamp / xampp. pero no se encuentra en el servidor de alojamiento. ¿Qué debería dar en src? Mi alojamiento es como: aaa.bbb.com y su puerto es 8803 o bbb.com y su puerto es 8803.
He intentado las formas son para ser incluido como
<script src="/socket.io/socket.io.js"></script>
<script src="http://aaa.bbb.com:3000/socket.io/socket.io.js"></script>
<script src="http://bbb.com:3000/socket.io/socket.io.js"></script>
Mi código del lado del servidor es
var express = require(''express'');
var app = express();
var socket = require(''socket.io'');
var server = require(''http'').createServer(app);
server.listen(3000);
var io = socket.listen(server);
var async = require(''async'');
var mysql= require(''mysql'');
var pool = mysql.createPool({
host : ''XXXXX'',
user : ''XXXXX'',
password : ''XXXX'',
database:''XXXXX'',
});
var chatserver=require(''./chatserver.js'');
var chatpage=io.of(''/as/chatRoom'').authorization(function (handshakeData, callback) {
console.dir(handshakeData);
handshakeData.page = ''/welcome/chatRoom'';
callback(null, true);
}).on(''connection'', function (socket) {
console.dir(socket.handshake.page);
chatserver.getUserFeeds(chatpage,socket,io,pool,async);
});
En el lado del servidor de index.js del nodo necesitarás requerir io, en el servidor http
var
app = require(''express'')(),
http = require(''http'').Server(app),
io = require(''socket.io'')(http);`
Estoy utilizando manubrios como mi sistema de plantillas, así que sigo. En su archivo de plantilla de inicio agregará
<script>
var socket = io.connect(''http://bbb.com:3000'');
socket.on(''connect'', function(){
socket.emit(''authenticate'', {data: "token"});
socket.on(''error'', function(err){ alert(err);
});
socket.on(''unauthorized'', function(err){
alert("Disconnected");
console.log("There was an error with the authentication:", err.message);
});
socket.on(''disconnected'', function() { alert(''Disconnected'') });
});
</script>
Eso funciona para mí en el servidor en vivo.
Con tu código:
var express = require(''express'');
var app = express();
var socket = require(''socket.io'');
var server = require(''http'').createServer(app);
server.listen(3000);
var io = socket.listen(server);
La ruta de socket.io.js es:
http://127.0.0.1:3000/socket.io/socket.io.js
Necesita usar javascript o php.
Javascript:
(Dynamic js include)
var PORT = 3000;
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://" + document.location.hostname + ":" + PORT + "/socket.io/socket.io.js";
script.onerror = function () {
console.log("Socket.io: unfound.");
};
script.onload = function () {
console.log("Socket.io: loaded.");
// Your code here.
// startSocketIO();
};
document.getElementsByTagName("head")[0].appendChild(script);
// <script type="text/javascript" src="http://127.0.0.1:3000/socket.io/socket.io.js"></script>
PHP:
<script src="http://<?=$_SERVER["SERVER_NAME"]?>:3000/socket.io/socket.io.js"></script>
Perdón por contestar tarde. Funciona con mi código en sí. Solo creo que tenemos que permitir el PORT 3000 en el servidor. Agregue el número de puerto a las tablas IP o deshabilite el servidor de seguridad y luego funciona bien :)