Node Ссылки Socket.io, как дать в сервере не localhost (wamp/xampp)
Я новичок в сессии сокета, но я узнал, как он будет работать в локальном хосте wamp/xampp.
Но когда я перехожу на сервер, на котором размещается. это не сработает.
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
Выше этой работы в wamp/xampp. но не найден на сервере хостинга.
Что я должен дать на src.
Мой хостинг выглядит следующим образом:
aaa.bbb.com и его порт - 8803 или
bbb.com и его порт - 8803.
Я пробовал, чтобы пути включались как
<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>
Мой код на стороне сервера
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);
});
Ответы
Ответ 1
На стороне сервера index.js node вам нужно будет потребовать io, на http server
var
app = require('express')(),
http = require('http').Server(app),
io = require('socket.io')(http);`
Я отказываюсь от рулей в качестве моей системы шаблонов, поэтому я продолжаю это. В своем домашнем файле шаблона вы добавите
<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>
Это работает для меня на живом сервере.
Ответ 2
С кодом:
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);
Путь socket.io.js:
http://127.0.0.1:3000/socket.io/socket.io.js
Вам нужно использовать javascript или php.
Javascript:
(Включен динамический js)
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>
Ответ 3
Извините за поздний ответ. Он работает с моим кодом. Только подумайте, что мы должны разрешить PORT 3000 на сервере. Добавить номер порта в IP-таблицы или отключить межсетевой экран сервера, а затем он отлично работает:)