【问题标题】:Android:Not receiving any response from Socket.IOAndroid:未收到来自 Socket.IO 的任何响应
【发布时间】:2017-12-01 17:39:31
【问题描述】:

我正在编写一个简单的代码来连接到 Socket.Io 服务器。

我只是在 onCreate 中连接到 Socket.io 并在单击按钮后推送一些消息。但不幸的是,没有收到来自那里的单一回应。我的调试点是没有进入 Emitter.Listener。我的代码如下:

public class MainChatPage extends Activity{

private Socket mSocket;
private EditText mInputMessageView;
private Button send;
private GlobalSharedPreference prefs;
private APIInterface apiInterface;
{
    try {
        mSocket = IO.socket(Constantstuffs.SERVER_URL);
    } catch (URISyntaxException e) {}
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen_main_chat_page);
    apiInterface = APIClient.getClient().create(APIInterface.class);
    prefs = new GlobalSharedPreference(this);
    mInputMessageView = (EditText) findViewById(R.id.etMessege);
    send = (Button) findViewById(R.id.send_button);
    send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            attemptSend();
        }
    });


    mSocket.connect();
    mSocket.on("new message", onNewMessage);
}


private void attemptSend() {
    String message = mInputMessageView.getText().toString().trim();
    if (TextUtils.isEmpty(message)) {
        return;
    }

    mInputMessageView.setText("");
    mSocket.emit("new message", createJson(message));
}

private Emitter.Listener onNewMessage = new Emitter.Listener() {


    @Override
    public void call(final Object... args) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                JSONObject data = (JSONObject) args[0];

                Log.v("some response", ""+data);
            }
        });
    }
};
    @Override
    public void onDestroy() {
        super.onDestroy();

        mSocket.disconnect();
        mSocket.off("new message", onNewMessage);
    }

【问题讨论】:

  • 您是否尝试在EVENT_ERROR上监听以检查连接过程中是否出现错误?
  • 不幸的是我不知道如何在这里实现 EVENT_ERROR 代码..任何示例代码都会很明显
  • 应该是这样的pastebin.com/SR0u8DBF
  • 不,在发出消息后没有一个事件响应。我正在使用 gradle 0.3.0 即compile 'com.github.nkzawa:socket.io-client:0.3.0' ..这是对的吗?
  • 这里它的连接总是在 onConnect 方法中正确..但在任何事件中都没有任何响应。

标签: android socket.io-1.0


【解决方案1】:

尝试将此添加到您的AndroidManifest.xml application

android:usesCleartextTraffic="true"

更多详情:https://developer.android.com/guide/topics/manifest/application-element#usesCleartextTraffic

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-11
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    相关资源
    最近更新 更多