GGTalk is a high imitation version of QQ, including client and server. It can be deployed and used in WAN. It is an instant messaging system developed using .net. I want to write a summary-like article. Through this article, everyone can understand the full picture and latest progress of GG, and the answers to some common questions are also summarized here.
Closer to home, for me personally, my goal is not to make a high-imitation version of QQ toys, but to make a product that can actually be used (this process still has a long way to go) and continue to maintain it. .
1. Implemented functions
(01) Register, log in, add friends, and friend list.
(02) Selfie avatar.
(03) Text chat, font settings, GIF dynamic expressions, window vibration, screenshots, handwriting pad, login status (online, away, busy, do not disturb, invisible), input reminder
(04) Group functions: create group, join group, exit group, group chat
(05) File transfer, folder transfer (supports breakpoint resume transfer)
(06) Voice and video chat
(07) Remote disk
(08) Remote assistance
(09) Shared desktop (you can specify the desktop area to be shared)
(10) Reliable P2P
(11)Network disk
(12) Offline messages
(13) Offline files
(14) Tray flashing: Exactly the same as QQ, when a message is received, the tray will flash the corresponding friend's avatar. Click on the avatar and a chat box with friends will pop up.
(15) Recent contacts list
(16) System settings: automatic startup at boot, microphone device index, camera device index, whether to close the program or hide the window when the main window is forked.
(17) Chat records: Supports two methods of local saving and server-side saving.
(18) Friend groups: add/delete groups, modify group names, and change the groups to which friends belong.
(19) When the chat window is opened, the last sentence of the last conversation is automatically displayed.
(20) Input reminder: Like QQ, when the other party is typing a message, the chat box on my side can see the "typing" prompt of the other party.
(21) Automatic recording: GG2014 will automatically record the location and size of the last opened main interface; the size of the last opened chat window; the last set font color and size, etc.
(22) The main form is automatically hidden aside.
(23) Record video chat.
2. Functions to be implemented in the future
(1) Add persistence support
(2) Video conference
3.GGTalk development environment
Development environment: VS2010, development language: C#, .NET Framework: 2.0
When deploying the client, the client machine also needs to install VC++2008 runtime and VC++2010 runtime.
4. GGTalk related instructions
1. If you want to deploy GG to the WAN, you can set the listening port in the server's configuration file; and in the client's configuration file, you can specify the server's IP and Port.
2. Virtual database
(1) In order to make deployment and testing easier, GG does not use a real physical database, but virtualizes a database in the memory (i.e. the VirtualDB class on the server side) to store user registration information, friend relationships, group information, etc.
(2) GG has several built-in users: 10000, 10001, 10002, 10003, and their login passwords are all "1".
(3) The users built into GG are all friends.
(4) GG has two built-in groups: G001 and G002. The G001 group contains all built-in test users, and the G002 group contains two users, 10000 and 10001.
(5) The above built-in information is set in the constructor of the VirtualDB class.
3. The selection of microphone and camera can be specified in the client system setting window (SystemSettingForm).
4. Voice and video: Many friends also ask why the voice and video equipment is not working properly, or the voice and video are not smooth. For this, you can directly refer to the OMCS official documents: camera, microphone, speaker, equipment test, bandwidth requirements.
5. A special note: In the GG project, as long as the code written by me is released, all of it will be released. Please don’t ask me for other source codes if you like every dll to have source codes:)