2016-08-30 10 views
15

Jestem nowy w sesji gniazda, ale nauczyłem się, jak to będzie działać w localamp wamp/xampp. Ale kiedy przejdę na serwer, który hostuje. to nie zadziała.węzeł Socket.io linki, jak da się na serwerze nie localhost (wamp/xampp)

<script src="http://localhost:3000/socket.io/socket.io.js"></script> 

Powyżej tej pracy w wamp/xampp. ale nie można go znaleźć na serwerze hostingowym. Co powinienem podać na src. Moje hostingu jest być jak: aaa.bbb.com i jego port 8803 lub bbb.com i jego port 8803.

Próbowałem sposobów mają być to tak jak

<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> 

serwer kod strony jest

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); 
}); 
+0

Co stanie się, gdy spróbujesz wejść na socket.io? Doss załadować w nieskończoność lub masz błąd? Czy używasz nginx lub apache, czy może czegoś innego? – Skysplit

+0

ilekroć używam powyższej linii skryptu, nie znaleziono pliku socket.io.js Mam błąd – Gopalakrishnan

+0

Czy możesz pokazać nam również swój kod serwera? – Skysplit

Odpowiedz

4

po stronie serwera index.js węzła trzeba będzie wymagać io, na serwerze http

var 
app = require('express')(), 
http = require('http').Server(app), 
io = require('socket.io')(http);` 

Nie jestem kierowcą jako moim systemem szablonowym, więc idę do tego. Na swoim szablonie domowym dodamy

To działa dla mnie na serwerze na żywo.

+0

Socketio spawnuje swój własny serwer http, gdy go nie dostarczysz. Nie jestem pewien, czy to rozwiąże problem – Skysplit

+0

powyżej również nie działa – Gopalakrishnan

1

z kodem:

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); 

Ścieżka socket.io.js jest:

http://127.0.0.1:3000/socket.io/socket.io.js 

Trzeba użyć javascript lub php.

Javascript:

(js dynamiczne należą)

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> 
0

Niestety za późno sekretarce. Działa z moim kodem. Tylko myśl, że musimy pozwolić PORT 3000 na serwerze. Dodaj numer portu do tabel IP lub wyłącz zaporę serwera, a następnie działa dobrze :)