2016-01-13 57 views
0

我在Openshift上託管了一個簡單的node.js服務器,但它似乎並不接受連接,即使它正在監聽端口。我的js文件的代碼如下:Nodejs:WebSocket似乎不接受連接

var ipaddress = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1"; 
var port  = process.env.OPENSHIFT_NODEJS_PORT || 8080; 

var players = []; 

var WebSocketServer = require('ws').Server 
var http = require('http'); 

console.log("ok"); 

var server = http.createServer(function(request, response) { 
    console.log((new Date()) + ' Received request for ' + request.url); 
    response.writeHead(200, {'Content-Type': 'text/plain'}); 
     response.write("Welcome to Node.js on OpenShift!\n\n"); 
     response.write(ipaddress); 
     response.write(port); 
     response.end("Bye"); 
}); 

server.listen(port, ipaddress, function() { 
    console.log((new Date()) + ' Server is listening on port 8080'); 
}); 

var wss = new WebSocketServer({ 
    server: server, 
    autoAcceptConnections: true 
}); 
wss.on('connection', function(ws) { 
    console.log("New connection"); 
    ws.on('message', function(message) { 
    ws.send("Received: " + message); 
    }); 
    ws.send('Welcome!'); 
}); 

console.log("Listening to " + ipaddress + ":" + port + "..."); 

function player(id, x, y){ 
    this.id = id; 
    this.x = x; 
    this.y = y; 
} 

但是,當我嘗試從android模擬器連接到此套接字時,我沒有得到響應。在android studio中的連接代碼如下:

public void connectSocket(){ 
     try { 
      socket = IO.socket("http://testapp-weihao.rhcloud.com:8080"); 
      socket.connect(); 
     } catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
    public void configSocketEvents(){ 
     socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { 
      @Override 
      public void call(Object... args) { 
       Gdx.app.log("SocketIO", "Connected"); 
       player = new Starship(playerShip); 
      } 
     } 
... 

我的代碼有什麼問題嗎?

+0

您是否嘗試過在運行此ws服務器的同一臺計算機上發送簡單的發送文本客戶端:https:// www.npmjs.com/package/ws#sending-and-receiving-text-data – Oxi

+0

謝謝,但我已經找到了問題 –

回答

0

Nvm我發現了這個問題。顯然,對於Openshift,websocket在端口8080上偵聽,但在連接到端口時,應用程序必須連接到端口8000