客户端Socket.io的Android实现与1.0版兼容 - 初学者

时间:2014-08-20 20:58:23

标签: java android node.js socket.io-1.0

感谢您阅读我的问题。 (请为我的坏英语道歉)

我正在尝试使用socket.io开发一个简单的android原型。 我有一个服务器node.js与socket.io(正在工作),现在我正在开发客户端(有问题)。

我已经下载了拉链: https://github.com/nkzawa/socket.io-client.java 在Eclipse上,我右键单击了我的项目/构建路径/添加外部存档 我选择了下载的文件。 客户端代码:

package com.example.temp_test;

import java.net.URISyntaxException;



import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final Socket socket;
        try {
            socket = IO.socket("X.X.X.X:8080");
            socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {

                  @Override
                  public void call(Object... args) {
                    socket.emit("message", "hi");
                    socket.disconnect();
                  }

                }).on("event", new Emitter.Listener() {

                  @Override
                  public void call(Object... args) {}

                }).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {

                  @Override
                  public void call(Object... args) {}

                });
                socket.connect();
        } catch (URISyntaxException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

当然X.X.X.X是IP地址。 所以现在我有了一些红线,因为eclipse没有找到IO类。

我已经尝试了教程,像这样:Java implementation for client Socket.io compatible with version 1.0(我有一些崩溃),其他很多都太旧或不兼容1.0。

我是一个关于socket.io android的初学者。 因此,如果有人可以帮助我,我只想要安装好包而不会崩溃的方式,这将非常感激,我将自己完成其余的工作。

提前致谢

2 个答案:

答案 0 :(得分:1)

我也在经历同样的问题。我尝试过gottox但我们在nodejs服务器上也有v1.0,所以它没有成功。我刚刚发现https://github.com/koush/ion是一种在Android上实现socketio客户端的更简单和稳定的方法。我明天会尝试这个,也许你也可以尝试,我们可以分享我们的发现。这提供了jar文件,所以至少你不必经历maven路径。

答案 1 :(得分:0)

我刚看到你的帖子,这是一篇很老的帖子,但我的回答可能对像我这样的其他初学者有帮助。

socket.io.client需要engine.io-client库。源代码的网址位于:https://github.com/nkzawa/engine.io-client.java