2016-03-31 18 views
0

Düğüm öğrenmeye yeni başladım ve internetten küçük parçalar ve parçalar birleştirdim. Düğümü kullanmak istediğim bir şey, istemciden e-posta göndermek için SendGrid'tir. Bunu, socket.io istemci tarafında socket = io.connect(http://localhost:8080); (herkesin yapması gerektiği gibi) manuel olarak girerek çalıştım. Bu, yerel olarak gayet iyi çalıştı, ben de buna kahramanlar ya da benzer bir hizmete ev sahipliği yapmaya gittim. Ben sunucu için html görüntülemek için adresine http://localhost:5000 gidinSoket IO doğru sunucuya bağlanmaz.

var express = require('express'); 
var app = express(); 

var server = require('http').createServer(app); 
var io = require('socket.io')(server); 

// This is the socket.io port. I want the client to go through this. 
server.listen(8080); 

// this is used to serve a static html page in the public folder. 
// I feel like the way I have this set up is part of the issue 
app.set('port', (5000)); 
app.use(express.static(__dirname + '/public')); 

app.listen(app.get('port'), function() { 
    console.log('Node app is running on port ' + app.get('port')); 
}); 

: Burada

Aşağıdaki kod fonksiyonları onlar sadece sendgrid maddeleri çalışan olarak önemi yok (neye benzediğini benim sunucusudur .

// Init the socket 
socket = io.connect('http://localhost'); 
// send stuff through it. this stuff doesnt matter. but it sends values 
// Via json to the server to then use in an email. 
socket.emit('sendCompile', {adr: receptients, bod: body }); 
: Burada

yazdım istemci kodudur

socket.io-1.4.5.js:1 GET 
http://localhost/socket.io/? 
EIO=3&transport=polling&t=LFC_cxO 

Herhangi bir yardım mutluluk duyacağız: 210

Bu bana hata veriyor. (5 saatten fazla bir süredir bunun üzerinde çalışıyorum: D)

PS: Zaten herkesin yapmayı düşündüğü gibi socket = io(); ve socket = io.connect();'u değiştirmeyi denedim. ama bunların hiçbiri işe yaramıyor. Sunucuyu nasıl yazdığımla ilgili bir sorun gibi hissediyorum, onları bulduğum gibi bir araya getirdiğim gibi.

socket = io.connect('http://localhost'); 

socket = io.connect('http://mywebsite.com:8080'); 

Ayrıca liman Eğer soket için kullandığınız dikkat haline gelmelidir:

+0

onun heroku ortamında zaten 8080 dinleyen başka bir hizmet var, e-postalarınızı yönlendirilmemesine neden oluyor – Alex

cevap

-1

Sen, mesela port web sitesi ne olursa olsun localhostu etki alanını değiştirip eklemem gerekiyor Açık olması gerekiyor - liman açık değilse daha fazla meseleye gireceksiniz.

+0

mywebsite.com kullanmanız gerekmiyor, localhost kullanarak sitenin bulunduğu kutuya gidecektir Bu nedenle localhost (bu makine) üzerinde barındırılmaktadır. Ancak, bağlantı noktasını açma noktanız geçerli, soruşturulması gereken. – Alex

+0

Eğer localhost ile test etmek istersem? Bunu otomatik hale getirmenin bir yolu var mı, bu yüzden onu localhost'a elle değiştirmek zorunda değilim? – Luexco

İlgili konular