Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android开发,gotox socket.io-java-client:file not fount Exception/socket.io/1/_Java_Android_Exception_Socket.io_Handshake - Fatal编程技术网

Android开发,gotox socket.io-java-client:file not fount Exception/socket.io/1/

Android开发,gotox socket.io-java-client:file not fount Exception/socket.io/1/,java,android,exception,socket.io,handshake,Java,Android,Exception,Socket.io,Handshake,我的问题是: 我一直在尝试使用android应用程序,但最终出现了握手错误(见下文) 以下是我的应用程序源代码: public void runIO(){ try { SocketIO socket = new SocketIO("http://192.168.1.60:1337"); socket.connect(new IOCallback() { @Override public void onMess

我的问题是:

我一直在尝试使用android应用程序,但最终出现了握手错误(见下文)

以下是我的应用程序源代码:

public void runIO(){
    try {
        SocketIO socket = new SocketIO("http://192.168.1.60:1337");
        socket.connect(new IOCallback() {
            @Override
            public void onMessage(JSONObject json, IOAcknowledge ack) {
                try {
                    System.out.println("Server said:" + json.toString(2));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            public void onMessage(String data, IOAcknowledge ack) {
                System.out.println("Server said: " + data);
            }

            @Override
            public void onError(SocketIOException socketIOException) {
                System.out.println("an Error occured");
                socketIOException.printStackTrace();
            }

            @Override
            public void onDisconnect() {
                System.out.println("Connection terminated.");
            }

            @Override
            public void onConnect() {
                System.out.println("Connection established");
            }

            @Override
            public void on(String event, IOAcknowledge ack, Object... args) {
                System.out.println("Server triggered event '" + event + "'");
            }
        });

        // This line is cached until the connection is establisched.
        socket.send("Hello Server!");
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
和my Node.js/Socket.io:

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

    app.listen(1337);

    function handler (req, res) {
      fs.readFile(__dirname + '/index.html',
      function (err, data) {
        if (err) {
          res.writeHead(500);
          return res.end('Error loading index.html');
        }

        res.writeHead(200);
        res.end(data);
      });
    }

    io.on('connection', function (socket) {
      socket.emit('news', { hello: 'world' });
      socket.on('my other event', function (data) {
        console.log(data);
      });
    });
我得到了以下错误:

    06-09 03:59:53.955: W/System.err(11738): io.socket.SocketIOException: Error while handshaking
    06-09 03:59:53.965: W/System.err(11738):    at io.socket.IOConnection.handshake(IOConnection.java:322)
    06-09 03:59:53.965: W/System.err(11738):    at io.socket.IOConnection.access$7(IOConnection.java:292)
    06-09 03:59:53.970: W/System.err(11738):    at io.socket.IOConnection$ConnectThread.run(IOConnection.java:199)
    06-09 03:59:53.970: W/System.err(11738): Caused by: java.io.FileNotFoundException: http://192.168.1.60:1337/socket.io/1/
    06-09 03:59:53.975: W/System.err(11738):    at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
    06-09 03:59:53.975: W/System.err(11738):    at io.socket.IOConnection.handshake(IOConnection.java:313)
在浏览器上,它可以工作,页面位于
http://192.168.1.60:1337/socket.io/1/
正在返回以下消息(通过浏览器):

我不知道该怎么做才能让它工作。。。请帮忙:x

谢谢:D

编辑:

正如Larky所说,我不得不将Socket.io的版本降级到0.9.16。它像一个符咒一样工作,具有以下节点代码:

    var io = require('socket.io').listen(80); 

    io.on('connection', function (socket) {
      socket.emit('news', { hello: 'world' });
      socket.on('my other event', function (data) {
        console.log(data);
      });
    });

今天我通过在服务器端恢复到早期版本的socket.io(socket.io节点模块的早期版本)解决了这个问题。也许协议改变了

为此:

  • 删除节点\模块文件夹中的socket.io文件夹

  • 在控制台类型上:

  • npm安装插座。io@0.9.16

    应该可以了。。。这对我很有效:)


    (显然,这并不能完全解决问题,但就我而言,早期版本的socket.io运行良好)

    谢谢,就这样。似乎socket.io-java-client没有更新为最新版本的socket.io。我不知道它是否还保留着。我很惊讶它没有更新。这确实是将socketio 0.9客户端连接到1.0服务器时出现的错误。握手已更改,因此您需要向Java客户端添加支持,或者在服务器上返回到0.9。如果您想尝试,GitHub上有一个pull请求,它增加了1.0兼容性。谢谢你问这个问题,Larky的回答对我很有帮助它对你很有帮助,就像魅力一样。。。
        var io = require('socket.io').listen(80); 
    
        io.on('connection', function (socket) {
          socket.emit('news', { hello: 'world' });
          socket.on('my other event', function (data) {
            console.log(data);
          });
        });