169 похожих чатов

I am building a chat server So for storing a

websocket connection I am using the hashmap where key will be the userid and value will be the user socket channel

I want the user to connect the same account from multiple phones so when the user login again the socket channel gets replaced by the latest user login

How do I solve this issue
Isn’t hashmap a good idea to store the connection ? If not how do I store it.

3 ответов

15 просмотров

What abput the other phones? How do they get the messages they are logged in for? When you do this, you are implementing an hidden one device rule that the few users with multiple devices confuse.

Athul-N Автор вопроса
Sebastian
What abput the other phones? How do they get the m...

I want like how telegram does it When we logged in other phone we will get all messages

Athul N
I want like how telegram does it When we logged i...

Telegram wakes up in the background and fetches messages. When the App is open there is an permanent connection for updates. If i have the desktop and tge phone app open, both get the updates, your approach would be that the latest approach gets the update. I would implement the server side in a way that there are two api-endpoint where updates are get: 1. An query for past messages, it returns all the messages past an point of time, for first logins and when an device was not online for a time, if its implemented so it can stream the data it can be implemented more responsive 2. An websocket based one that returns messages from an pub-sub system that saves messages before submitting incoming in an database for endpoint 1. I would implement the pub sub system that it uses groups for each chat/group and that each websocket connection subscribes to the groups. This way you can implement it with redudancy from the start.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта