ConnectyCube / connectycube-ios-sdk-releases

Releases packages for ConnectyCube iOS SDK platform
https://connectycube.com
1 stars 1 forks source link

.sendUserIsTyping() is not working #9

Open huahengling opened 3 years ago

huahengling commented 3 years ago

.sendUserIsTyping() is not working, the other party cant track when iOS user is typing. But when other party is typing, iOS user is able to track it

DaveLomber commented 3 years ago

Could you please send a chat log when you are typing at iOS side

huahengling commented 3 years ago

Could you please send a chat log when you are typing at iOS side

var groupDialog = ChatDialog(dialogID:connectycube_dialog_id, type: .public)

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {

    groupDialog.sendUserIsTyping()

    return true
}

there is no error message from the server since it is not a closure function

DaveLomber commented 3 years ago

I mean, could you please share logs

We need to check what message is sending under the hod

huahengling commented 3 years ago

I mean, could you please share logs

  • either when iOS user is typing
  • or at other party, when also iOS user is typing

We need to check what message is sending under the hod

Hi Dave, there is no log returned from the server. The other party also not receive anything in their listener

DaveLomber commented 3 years ago

I mean you need to enable SDK logs at iOS side

https://developers.connectycube.com/ios/?id=configuration

and the send typing from iOS side and check logs in Xcode

huahengling commented 3 years ago

this is the log when other party is typing,

2021-05-18 21:13:06.472399+0800 Reno[46412:4826922] [Chat]: RCV: <message xmlns="jabber:client" from="3571_60110656ca8bf470b0aabe34@muc.chat.connectycube.com/4015716" type="groupchat" to="3372693-3571@chat.connectycube.com">
  <composing xmlns="http://jabber.org/protocol/chatstates"/>
  <delay xmlns="urn:xmpp:delay" stamp="2021-05-18T13:13:06Z"/>
</message>
2021-05-18 21:13:06.475286+0800 Reno[46412:4826922] [REST]: Request[26]:
GET URL:https://api.connectycube.com/users/by_login?login=4015716
headers: {
    "Accept-Language" = "en-MY;q=1, zh-Hant-MY;q=0.9, ar-MY;q=0.8";
    "CB-OS" = "iOS 13.2.2";
    "CB-SDK" = "iOS 1.7.0   ";
    "CB-Token" = 82C1A58E9D0D91FB9763B69BACE4CA00CAC0;
    "ConnectyCube-REST-API-Version" = "0.1.1";
    "User-Agent" = "Reno/1.0 (iPhone; iOS 13.2.2; Scale/3.00)";
}
parameters: {
    login = 4015716;
}
2021-05-18 21:13:06.736035+0800 Reno[46412:4826922] [Chat]: RCV: <message xmlns="jabber:client" from="3571_60110656ca8bf470b0aabe34@muc.chat.connectycube.com/4015716" type="groupchat" to="3372693-3571@chat.connectycube.com">
  <composing xmlns="http://jabber.org/protocol/chatstates"/>
  <delay xmlns="urn:xmpp:delay" stamp="2021-05-18T13:13:06Z"/>
</message>
2021-05-18 21:13:06.738053+0800 Reno[46412:4827508] [REST]: Request[27]:
GET URL:https://api.connectycube.com/users/by_login?login=4015716
headers: {
    "Accept-Language" = "en-MY;q=1, zh-Hant-MY;q=0.9, ar-MY;q=0.8";
    "CB-OS" = "iOS 13.2.2";
    "CB-SDK" = "iOS 1.7.0   ";
    "CB-Token" = 82C1A58E9D0D91FB9763B69BACE4CA00CAC0;
    "ConnectyCube-REST-API-Version" = "0.1.1";
    "User-Agent" = "Reno/1.0 (iPhone; iOS 13.2.2; Scale/3.00)";
}
parameters: {
    login = 4015716;
}
2021-05-18 21:13:07.228674+0800 Reno[46412:4827508] [Chat]: RCV: <message xmlns="jabber:client" from="3571_60110656ca8bf470b0aabe34@muc.chat.connectycube.com/4015716" type="groupchat" to="3372693-3571@chat.connectycube.com">
  <paused xmlns="http://jabber.org/protocol/chatstates"/>
  <delay xmlns="urn:xmpp:delay" stamp="2021-05-18T13:13:07Z"/>
</message>
2021-05-18 21:13:07.269719+0800 Reno[46412:4827508] [REST]: Response[26]:
headers: {
    "CB-Token-ExpirationDate" = "2021-05-18 15:13:07 UTC";
    Connection = "keep-alive";
    "Content-Length" = 379;
    "Content-Type" = "application/json; charset=utf-8";
    Date = "Tue, 18 May 2021 13:13:07 GMT";
    Duration = "0.794139";
    Server = "nginx/1.16.1";
    "Strict-Transport-Security" = "max-age=15768000; includeSubDomains";
}
object: {
    user =     {
        "_id" = 6092619ff8550e007e118513;
        avatar = "<null>";
        "created_at" = "2021-04-15T10:03:44Z";
        "custom_data" = "<null>";
        email = "<null>";
        "external_id" = "<null>";
        "external_user_id" = "<null>";
        "facebook_id" = "<null>";
        "full_name" = "heng new";
        id = 4015716;
        "last_request_at" = "2021-05-18T13:10:39Z";
        login = 4015716;
        phone = "<null>";
        "twitter_id" = "<null>";
        "updated_at" = "2021-05-18T13:10:39Z";
        "user_tags" = "";
        website = "<null>";
    };
}
2021-05-18 21:13:08.218714+0800 Reno[46412:4827067] [REST]: Response[27]:
headers: {
    "CB-Token-ExpirationDate" = "2021-05-18 15:13:08 UTC";
    Connection = "keep-alive";
    "Content-Length" = 379;
    "Content-Type" = "application/json; charset=utf-8";
    Date = "Tue, 18 May 2021 13:13:08 GMT";
    Duration = "1.479687";
    Server = "nginx/1.16.1";
    "Strict-Transport-Security" = "max-age=15768000; includeSubDomains";
}
object: {
    user =     {
        "_id" = 6092619ff8550e007e118513;
        avatar = "<null>";
        "created_at" = "2021-04-15T10:03:44Z";
        "custom_data" = "<null>";
        email = "<null>";
        "external_id" = "<null>";
        "external_user_id" = "<null>";
        "facebook_id" = "<null>";
        "full_name" = "heng new";
        id = 4015716;
        "last_request_at" = "2021-05-18T13:10:39Z";
        login = 4015716;
        phone = "<null>";
        "twitter_id" = "<null>";
        "updated_at" = "2021-05-18T13:10:39Z";
        "user_tags" = "";
        website = "<null>";
    };
}

there is no log when i invoke this method .sendUserIsTyping() from iOS side

DaveLomber commented 3 years ago
Screenshot 2021-05-20 at 10 13 06

We just tried to use dialog.sendUserIsTyping() an according to log it generates the typing status

Could you please double check again and provide a code snippet exactly how you call this method and where

huahengling commented 3 years ago

Hi Dave,

I tested if dialog ==.private, it works. I can see the log. But if the dialog ==.public, it does not work

huahengling commented 3 years ago

Hi Dave

Is there any update regarding this issue ?

huahengling commented 3 years ago

Hi Dave, the issue still happen. Have you fixed it yet ?

DaveLomber commented 3 years ago

@huahengling seems the typing is actual for 1-1 or group chats only. For public, the main idea is to have e.g. very bug groups with lots of people, e.g. similar to Telegram Channels, where having typing data displayed does not make any sense cause of lot's of people.

We recommend to use GROUP chats for standard group chatting feature, where typing should work well

huahengling commented 3 years ago

@huahengling seems the typing is actual for 1-1 or group chats only. For public, the main idea is to have e.g. very bug groups with lots of people, e.g. similar to Telegram Channels, where having typing data displayed does not make any sense cause of lot's of people.

We recommend to use GROUP chats for standard group chatting feature, where typing should work well

i tested with Android, it works with even with PUBLIC mode. Why cant iOS implement the same feature ? Thanks

huahengling commented 3 years ago

Hi Dave, any updates ?

DaveLomber commented 3 years ago

@huahengling I would say the android part is done this way by mistake

Please refer to this reply https://github.com/ConnectyCube/connectycube-ios-sdk-releases/issues/9#issuecomment-862972899

This is a proper way to use it