2016-04-10 24 views
0

ノードデバイスソケットioをサーバーとして使用し、Androidをクライアントデバイスとして使用してチャットアプリケーションを開発しています。アンドロイドクライアントからNodejsソケットioサーバー(Openshift無料アカウント)を接続できません

Openshift(無料アカウント)にデプロイされたサーバー.Webアプリケーションからサーバーに接続でき、アンドロイドからサーバーに接続できません。

var express = require('express'); 
var app = express(); 
app.use(function (req, res, next) { 
    res.header("Access-Control-Allow-Origin", "http://xxx-xxx.rhcloud.com:8000"); 
    res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
    res.header("Access-Control-Allow-Headers", "Content-Type"); 
    res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS"); 
    res.header('Access-Control-Allow-Credentials', true); 
    next(); 
}); 
var server = require('http').createServer(app); 
var io = require('socket.io').listen(server, { origins: 'http://xxx-xxx.rhcloud.com:8000' }); 

app.get('/', function (req, res) { 
    res.sendfile('index.html'); 
}); 

io.on('connection', function (socket) { 
    socket.on('chatmessage', function (msg) {  
     console.log(msg);  
     io.emit('chatmessage', msg); 
    }); 
server.listen(process.env.OPENSHIFT_NODEJS_PORT, process.env.OPENSHIFT_NODEJS_IP); 

のAndroidクライアント::

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test); 
    try {   
     mSocket = IO.socket("http://xxx-xxx.rhcloud.com:8000"); 
     mSocket.connect(); 
     mSocket.on("chatmessage", Test); 
     mSocket.emit("chatmessage", "xxxxxxxxxxx"); 

     mTxtView = (TextView) findViewById(R.id.txt_test); 
     mTxtView.setText("test....."); 
    } catch (Exception ex) { 
     System.out.println("Error=" + ex.getMessage()); 
    } 
} 
private Emitter.Listener Test = new Emitter.Listener() { 
    @Override 
    public void call(final Object... args) { 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       Gson j = new Gson(); 
       String s = j.toJson(args[0]); 
       String username; 
       String message;     
       mTxtView.setText(s); 
      } 
     }); 
    } 
}; 

アンドロイドLogcat:

I/System.out: [CDS][DNS] getAllByNameImpl netId = 0 
D/libc-netbsd: [getaddrinfo]: hostname=xxx-xxxxx.rhcloud.com; servname=(null); cache_mode=(null), netid=0; mark=0 
D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0 
04-10 18:31:25.990 32324-1181/example.com.chatsocketio D/libc-netbsd: [getaddrinfo]: hostname=xxx-xxxxx.rhcloud.com; servname=(null); cache_mode=(null), netid=0; mark=0 
D/libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=1024; ai_family=0 
D/libc-netbsd: getaddrinfo: xxx-xxxxx.rhcloud.com get result from proxy >> 
I/System.out: propertyValue:true 
I/System.out: [CDS]rx timeout:0 
I/System.out: [socket][13] connection xxx-xxxxx.rhcloud.com/xx.xxx.xxx.xxx:8000;LocalPort=51588(10000) 
I/System.out: [CDS]connect[xxx-xxxxx.rhcloud.com/xx.xxx.xxx.xxx:8000] tm:10 
D/Posix: [Posix_connect Debug]Process example.com.chatsocketio :8000 
I/System.out: [socket][/10.0.0.12:51588] connected 
I/System.out: [OkHttp] sendRequest>> 
I/System.out: [OkHttp] sendRequest<< 
I/System.out: [CDS]close[51588] 
I/System.out: [CDS][DNS] getAllByNameImpl netId = 0 

注:私が持っているの

iはhttps://github.com/nkzawa/socket.io-android-chat

サーバーから参照を取りましたWebアプリケーションからサーバに正常に接続しましたが、Androidから接続されていません

私を助けてください。

答えて

1

あなたのWebアプリケーションを既に開発しているので、私の答えを考えずに後退したくないかもしれませんが、AndroidクライアントをNode.jsネットサーバー(外部ライブラリなし)に接続するチュートリアルを書いています。 :とにかく

https://causeyourestuck.io/2016/04/27/node-js-android-tcpip/

幸運!

関連する問題