2017-02-17 96 views
0

我已經將this包含到了我的項目中,該項目允許在我的項目中使用socket io庫。我將發佈部分代碼流星和插座IO端口

// Start server 
    try { 
    server.listen(8080); 
     console.log("Server is litsnening for 8080 port"); 
    } catch (e) { 
    console.error(e); 
    } 

因此,您可以看到我的服務器正在監聽8080端口。問題是當我使用meteor命令啓動我的流星應用程序時,它在端口3000上啓動。 enter image description here http://localhost:3000/那麼現在如何告訴客戶端在8080端口連接?如果我可以使用相同的端口,這將是非常棒的,但這是不可能的。那麼服務器如何監聽連接? 3000或8080端口?

回答

0

我從來沒有這個問題,你可以仔細檢查你的代碼是啓動服務器?例如低於

var app = require('http').createServer(handler) 
var io = require('socket.io')(app); 
app.listen(8001); 
+0

感謝您的回覆,但是我使用流星請參閱https://github.com/Akryum/meteor-socket-io服務器示例 – David

0

我覺得你是在混淆。 使用socket.io您將在您的服務器上打開一個新的偵聽端口,因此您的應用將會公開2個端口,一個用於Meteor,另一個用於socket.io。 首先,meteor現在支持npm包,所以你可以直接使用socket.io npm包(所以你會得到最後的版本)。 如果服務器不記錄:

console.log("Server is litsnening for 8080 port"); 

,我會檢查,如果你實際上是包括/運行這段代碼,如果你想知道如果端口是開放的使用netstat命令在所有平臺上使用(根據您的平臺檢查參數)。在Linux的命令是:

sudo netstat -lp

比你的客戶,你必須有像連接到服務器socket.io:

var socket = Npm.require('socket.io-client')(url); 

socket.on('connect', function(){ 
    console.log("Connected"); 
}); 
socket.on('disconnect', function(){ 
    console.log("Disconnected"); 
}) 
0

我有點晚了,但今天我需要在流星應用實施socket.io,我想使用相同的端口都

import { WebApp } from 'meteor/webapp'; 
import socketIO from 'socket.io'; 

const io = socketIO(WebApp.httpServer); 

io.on('connection', function(socket) { 
    console.log('new socket client'); 
}); 

該解決方案似乎至今的作品,但我不知道這是否是一個感傷d實踐。