简体   繁体   English

Android socket io获取在线用户

[英]Android socket io get online user

I am developing an Android private chat application. 我正在开发一个Android私人聊天应用程序。 In this application, I want to see the online user or check whether the user is online or not. 在此应用程序中,我想查看在线用户或检查该用户是否在线。 I have got the reference. 我有参考。

emit("login",userid);

is used for get online users. 用于获取在线用户。 So I use 所以我用

public class OnlineActivity extends AppCompatActivity {
    private Socket mSocket;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_online);

        ChatApplication app = (ChatApplication) getApplication();
        mSocket = app.getSocket();

        JSONObject user = new JSONObject();
        try {
            user.put("userId", "abc");
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        mSocket.emit("login",user);

        Log.d("LOG", String.valueOf(mSocket.emit("login",user)));
        Log.d("LOG", String.valueOf(user));
    }
}

where abc is user id, but it does not show any results. 其中abc是用户ID,但不显示任何结果。 Please help me. 请帮我。

The answer is shown in How to check a user online or not in socket io and android chat application 答案显示在如何在套接字io和android聊天应用程序中检查用户是否在线

socket.on('isActive', function (user) {
const userId = user.userId;
const user = usernames[userId];
const socketId = socket.id;
let response;
if(user) {
    // User is active
    response = {isActive: true};
} else {
    // User is not active
    response = {isActive: false};
}
const responseSocket = io.sockets.connected[socketId];
if(responseSocket) {
    responseSocket.emit('onIsActive', response);
}
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM