【发布时间】: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