WO2012161437A2 - 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 - Google Patents

클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 Download PDF

Info

Publication number
WO2012161437A2
WO2012161437A2 PCT/KR2012/003655 KR2012003655W WO2012161437A2 WO 2012161437 A2 WO2012161437 A2 WO 2012161437A2 KR 2012003655 W KR2012003655 W KR 2012003655W WO 2012161437 A2 WO2012161437 A2 WO 2012161437A2
Authority
WO
WIPO (PCT)
Prior art keywords
message
chat
client
client device
package data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/KR2012/003655
Other languages
English (en)
French (fr)
Other versions
WO2012161437A3 (ko
Inventor
김태우
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neowiz Internet Corp
Original Assignee
Neowiz Internet Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neowiz Internet Corp filed Critical Neowiz Internet Corp
Publication of WO2012161437A2 publication Critical patent/WO2012161437A2/ko
Publication of WO2012161437A3 publication Critical patent/WO2012161437A3/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication

Definitions

  • the present invention relates to chat service technology, and more particularly, to a chat service technology suitable for a mobile environment.
  • a chat server performs many functions such as user computer connection management, user management, chat room management, message management, various control functions, and the like.
  • the conventional chat service is a server-based chat service.
  • the conventional chat service is performed in a better network situation and in a general web environment than in a mobile environment.
  • the server-based chat service is complex and many functions are provided to the user, the server has to perform many functions as well as the user's computer connected to the server.
  • an object of the present invention is to provide a client-based chat service suitable for a mobile environment.
  • the sender information that is identification information corresponding to the first client device, the recipient list and message type information including identification information respectively corresponding to one or more second client devices
  • a message receiver configured to receive, from the first client device, a message header including a message and package data in which a message input from the first client device is packaged;
  • a message storage unit for storing the package data;
  • a message transmitting unit which transmits the stored package data to the at least one second client device by referring to the recipient list.
  • the present invention provides a client-based chat service in a chat server, comprising: sender information that is identification information corresponding to a first client device and identification information corresponding to one or more second client devices, respectively.
  • sender information that is identification information corresponding to a first client device and identification information corresponding to one or more second client devices, respectively.
  • a first message header including the first sender information, the first receiver list, and the first message type information is packaged with the first message and the first message is packaged.
  • a first package data transmitter for generating package data and transmitting the generated first package data to a chat server;
  • a second package data receiver configured to receive from the chat server a second message header including a second sender information, a second receiver list, and a second message type information, and second package data in which a second message is packaged;
  • a chat screen controller configured to output the inputted first message and the second message to a chat screen.
  • the present invention provides a method for providing a client-based chat service, the client device comprising the steps of: outputting the input first message to the chat screen; When the first message is input, packaging a first message header including first sender information, a first receiver list, and first message type information and the inputted first message to generate first package data; Transmitting the generated first package data to a chat server; Receiving, from the chat server, a second message header including a second sender information, a second receiver list, and a second message type information, and second package data in which a second message is packaged; And outputting the second message to the chat screen.
  • the present invention when the message is input, package the message header including the sender information, recipient list and message type information and the input message to generate and transmit the package data, and sends the input message to the chat screen A first client output to the; A chat server which receives and stores the package data and delivers the package data with reference to the recipient list; And a second client receiving the package data and outputting a message packaged in the package data to a chat screen, wherein the recipient list includes identification information corresponding to the second client.
  • the present invention when the message is input, package the message header including the sender information, recipient list and message type information and the input message to generate and transmit the package data, and sends the input message to the chat screen A first client output to the; A chat server which receives and stores the package data and delivers the package data with reference to the recipient list; And a second client receiving the package data and outputting a message packaged in the package data to a chat screen, wherein the recipient list includes identification information corresponding to the second client.
  • the present invention in the recording medium recording a program for executing a method for providing a client-based chat service, the function of outputting the input first message on the chat screen, the first message is input And a first message header including a first sender information, a first recipient list, and a first message type information and a package of the inputted first message to generate first package data, and the generated first package.
  • a second message header including a second sender information, a second recipient list, and a second message type information, and second package data packed with a second message;
  • a computer-readable recording medium having recorded thereon a program implementing a function and a function of outputting the second message to the chat screen.
  • FIG. 1 is a diagram schematically illustrating a system for providing a client-based chat service according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of a chat server providing a client-based chat service according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating a method in which a chat server provides a client-based chat service according to an exemplary embodiment of the present invention.
  • FIG. 4 is a block diagram of a client device for providing a client-based chat service according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a method of providing a client-based chat service by a client device according to an exemplary embodiment of the present invention.
  • FIG. 6 is a diagram illustrating a message transmission procedure and a message reception procedure according to a protocol for providing a client-based chat service according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating a data format according to a protocol for providing a client-based chat service according to an embodiment of the present invention.
  • FIG. 8 is a diagram exemplarily defining message type information according to a protocol for providing a client-based chat service according to an embodiment of the present invention.
  • 9 to 15 are diagrams for explaining a client-based chat service according to an embodiment of the present invention.
  • FIG. 1 is a diagram schematically illustrating a system for providing a client-based chat service according to an embodiment of the present invention.
  • a system for providing a client-based chat service includes a client device 100 of a user who uses a chat service and a message input by a user in the client device 100. Chat server 110 and the like delivered between the client device (100).
  • the chat service disclosed in the present invention is a "client-based chatting service", which is more suitable for a mobile environment in which a personal identity is relatively clear as compared to a web environment.
  • mobile environment refers to an environment in which a user subscribed to a telecommunication company uses a mobile communication service or a wireless communication service.
  • the personal identity is clear.
  • a chat server performs many functions such as user computer connection management, user management, chat room management, message management, various control functions, and the like.
  • the conventional chat service is a server-based chat service.
  • the conventional chat service is performed in a better network situation than in a mobile environment and in a general web environment.
  • the server-based chat service is complex and many functions are provided to the user, the server has to perform many functions as well as the user's computer connected to the server.
  • the functional elements of the heavy chat service provided in the web environment are simplified to be suitable for the mobile environment described above, and the chat server 110 is simplified.
  • the functional elements only the message transfer function between the client devices 100 is performed, and the client device 100 performs the remaining simplified functional elements. This will be described in more detail with reference to FIGS. 2 to 3.
  • the client device 100 and the chat server 110 included in the system for providing a client-based chat service communicate with each other through a network 120 to provide a chat service.
  • the network 120 is a wired or wireless network, an access network to which the chat server 110 is connected, an access network to which the client device 100 is connected (eg, a mobile communication network, a wireless LAN (WiFi), etc.), It may include a core network (Core Network), etc., which may be in various forms connecting the access networks.
  • the client device 100 described above may be a smartphone, a tablet PC, a mobile communication terminal, or the like, and may be any portable terminal having a communication function.
  • the client device 100 executes an application installed through an application store server to provide a client-based chat service according to an embodiment of the present invention. That is, an application installed in the client device 100 through the application store server may use a client base according to an embodiment of the present invention by using a hardware configuration (eg, a communication module, a memory, a processor, a display, etc.) of the client device 100. Chat service.
  • a hardware configuration eg, a communication module, a memory, a processor, a display, etc.
  • the chat server 110 performs a message transfer function between the client devices 100. It will be described in more detail below with reference to 2-3.
  • FIG 2 is a block diagram of a chat server 110 that provides a client-based chat service according to an embodiment of the present invention.
  • the client device 100 that transmits the message to the chat server 110 in order to deliver the input message to the other client device 100 is also referred to as a "first client device 100a", the chat server ( The client device 110 that receives the message stored in 100 is also referred to as the "second client device 100b.”
  • One client device 100 operates as the first client device 100a when a message is input and transmitted to the chat server 100, and moves to the second client device 100b when receiving a message from the chat server 100.
  • the first client device 100a and the second client device 100b may be different client devices 100, or differently represent the same client device 100 to distinguish roles at any one point in time. have.
  • the chat server 110 may transmit a message input from the first client device 100a to deliver a message.
  • Message receiving unit 210 to receive from the 100a, the message storage unit 220 for storing the message received from the first client device (100a), and the message transmission unit for transmitting the stored message to the second client device (100b) ( 230) and the like.
  • a message input by the user is packaged by attaching a message header. And delivered in the form of package data.
  • the message header includes sender information for sending a message, a recipient list including recipient information for receiving a message, message type information, and the like.
  • package data, a message, and a message header transmitted from the first client device 100a to the chat server 110 are also referred to as “first package data”, “first message”, and “first message header”.
  • package data, messages, and message headers transmitted from the chat server 110 to the second client device 100b are also referred to as “second package data”, “second message”, and “second message header”.
  • the message M When the message M is delivered from the client device A to the client device B through the chat server 110, the message M received by the chat server 110 from the client device A is the first message, and the chat server 110 is connected to the client device.
  • Message M sent to B is the second message.
  • the message M that the client device A sends to the chat server 110 is the first message
  • the message M that the client device B receives from the chat server 110 is the second message. That is, the "first message and the second message" is used to distinguish between the message received by the chat server 110 and the message to be transmitted, or to distinguish between the message sent by the client device 100 and the received message. In fact, it may be the same message.
  • the first package data is transmitted from the first client device 100a to the second client device 100b through the chat server 110.
  • the message receiver 210 When the message is packaged and delivered, the message receiver 210 includes first sender information, which is identification information corresponding to the first client device 100a, and identification information corresponding to one or more second client devices 100b, respectively.
  • the first client device 100a includes the first package data in which the "first message header" including the first recipient list and the first message type information and the "first message” input from the first client device 100a are packaged. From).
  • the message storage unit 220 stores the first package data received from the first client device 100a in the message storage space.
  • the message transmitter 230 transmits the first package data stored in the message storage space to the one or more second client devices 100b by referring to the first recipient list in the first package data.
  • the identification information corresponding to the client policing 100 may be, for example, personally unique information such as a phone number and user information that may correspond to the phone number.
  • the above-described message transmitter 230 may transmit the stored first package data to one or more second client devices 100b in a pull method or a push method.
  • the message transmitter 230 stores the first package in which identification information corresponding to the second client device 100b is stored. It is checked whether it is included in the first recipient list in the data, and if it is found to be included, the first package data stored in the second client device 100b is transmitted. In this case, the message request data is transmitted according to a user's input of the second client device 100b, or an application installed in the second client device 100b is executed and the application automatically sends the message request data when a periodic or event occurs. Send to the chat server 110.
  • the message transmitter 230 checks the first recipient list in the stored first package data when the first package data is stored, and finds the corresponding second client device through this confirmation.
  • the first package data can be transmitted to 100b.
  • the second client device 100b may be in a state capable of receiving the first package data, or may simply have an application installed in the second client device 100b running.
  • the system includes a message header including sender information, a recipient list, and message type information when a message is input.
  • Package the input message to generate and send package data, and receive and store the package data from the first client device 100a for outputting the input message to the chat screen, and the package data from the first client device 100a.
  • the chat server 110 which delivers package data with reference to the recipient list included in the message header packaged in the package, receives the package data from the chat server 110, and outputs a message packaged in the received package data to the chat screen. It includes a second client device (100b).
  • the recipient list included in the message header packaged in the package data includes identification information corresponding to the second client device 100b.
  • the second client device 100b may perform a management function such as adding a new participant or deleting an existing participant by grasping the chat participant list based on the sender information and the recipient list included in the message header packaged in the package data. have.
  • FIG 3 is a flowchart illustrating a method in which the chat server 110 provides a client-based chat service according to an exemplary embodiment of the present invention.
  • the method for providing a client-based chat service by the chat server 110 may include first sender information, one or more identification information corresponding to the first client device 100a, and one or more chatters.
  • the first message list including the first recipient list and the first message type information including identification information corresponding to the second client device 100b and the first message input from the first client device 100a are packaged.
  • a client device 100 that provides a client-based chat service according to an embodiment of the present invention will be described in more detail with reference to FIGS. 4 and 5.
  • FIG. 4 is a block diagram of a client device 100 that provides a client-based chat service according to an embodiment of the present invention.
  • the client device 100 providing a client-based chat service may include first sender information, a first receiver list, and a first receiver.
  • the package data receiver 420 may include a chat screen controller 430 for outputting a first message input by a user and a second message packaged in the second package data to a chat screen.
  • the client device 100 that transmits the first package data by the first package data transmitter 410 operates as the first client device 100a and receives the second package data by the second package data receiver 420.
  • the client device 100 operates as the second client device 100b.
  • the first package data transmitter 410 described above is configured to chat with one or more other client devices (the user of the client device 100) based on a user input or a pre-managed chat participant list to package and transmit the first message.
  • the first recipient list including identification information corresponding to the client device of the user or the client device of the user who is chatting with the user of the client device 100.
  • the method of setting the first recipient list according to the user input may be a method of setting the first recipient list when a user of the client device 100 invites a user to chat.
  • the method of setting the first recipient list based on the previously managed chat participant list may be a method of setting the first recipient list while the chat is already being performed.
  • the client device 100 that provides a client-based chat service may perform a function of managing a list of all users (participants) who are chatting.
  • the client device 100 that provides a client-based chat service according to an embodiment of the present invention may include identification information corresponding to one or more other client devices and the client device 100, respectively.
  • the chat participant list manager 440 may further include a chat participant list manager.
  • the chat participant list manager 440 described above after receiving the second package data of which the second message type information is "invitation message type information" from the chat server 110, the second message packaged in the second package data. On the basis of the second receiver list included in the header, identification information corresponding to the new client device may be added to the chat participant list previously managed, and identification information corresponding to the new client device may be added.
  • identification information corresponding to the client device of the user to be invited is displayed in the recipient list (the second receiver list from the perspective of the client device 100).
  • the message type information is set as the invitation message type information
  • the package data (second package data from the client device 100's point of view) is transmitted through the chat server 110, and all client devices that receive the package data are received. Adds "identification information corresponding to the client device of the user to be invited" which is not included in the existing participant list.
  • the chat participant list manager 440 described above after receiving the second package data whose second message type information is "outgoing message type information" from the chat server 110, the second message packaged in the second package data.
  • the identification information corresponding to the specific other client device, which is the second sender information included in the header, may be deleted from the chat participant list previously managed.
  • the first message type information and the second message type information mentioned above may be one of invitation message type information, general message type information, and exit message type information.
  • the second package data receiving unit 420 described above may check whether there is a second package data to be brought into the message storage space of the chat server 110.
  • the message request data including the identification information corresponding to the apparatus 100 may be transmitted to the chat server 110 to receive the second package data.
  • the second receiver list in the received second package data includes identification information corresponding to the client device 100.
  • the second package data receiver 420 described above may receive the message request data in a standby state without transmitting the message request data to the chat server 110.
  • the client-based chat service may be a 1-1 chat service or a group chat service.
  • the 1-1 chat service and the group chat service differ only in one or more identification information corresponding to the client from the recipient list included in the message header packaged in the package data to be delivered.
  • the operation of 110 and the client device 100 is the same.
  • group information for identifying a chat group may be further included in a message header packaged in package data.
  • a chat group means a group of users (client devices) chatting together, and a chat group may mean a group of users (client devices) in the message delivery range because the message is delivered only within the chat group. There is.
  • Such a chat group may be a chat group for 1-1 chat between two users, or may be a chat group for group chat between three or more users.
  • the chat server 110 may more quickly extract the corresponding package data to be delivered among the package data stored in the message storage space.
  • the client device 100 can more conveniently and quickly manage the package data for each chat. Accordingly, a faster chat service can be provided to the user.
  • Client device 100 according to an embodiment of the present invention shown in Figure 4, a smartphone that provides a client-based chat service by running an application (chat client program) installed through an application store server (Application Store Sever), It may be a mobile terminal such as a tablet PC or a mobile communication terminal.
  • application chat client program
  • Application Store Sever Application Store Sever
  • FIG. 5 is a flowchart illustrating a method in which the client device 100 provides a client-based chat service according to an embodiment of the present invention.
  • the method for providing a client-based chat service by the client device 100 may include: outputting a first message input by a user to a chat screen (S300); When the first message is input, generating a first package data by packaging a first message header including the first sender information, the first receiver list, and the first message type information and the inputted first message (S302); In operation S304, the generated first package data is transmitted to the chat server 110, and a second message header and a second message including second sender information, second recipient list, and second message type information are packaged. Receiving the second package data from the chat server 110 (S306), and outputting the second message on the chat screen (S308) and the like.
  • the above procedure is an example in which the client device 100 first transmits a message (first message) and then receives a message (second message) input from another client device later.
  • the first sender information included in the first message header packaged in the first package data is identification information corresponding to the client device 100, and the first receiver list includes identification information corresponding to one or more other client devices, respectively. .
  • the second sender information included in the second message header packaged in the second package data is identification information corresponding to a specific other client device among one or more other client devices, and the second recipient list is identification corresponding to the client device 100. Information and the like.
  • step S302 when generating the first package data to be sent by packaging the first message, one or more other client devices (users of the client device 100) chat on the basis of a user input or a previously managed chat participant list.
  • a first recipient list including identification information corresponding to a client device of a user or a client device of a user having a user chat of the client device 100.
  • the method of setting the first recipient list according to the user input may be a method of setting the first recipient list when a user of the client device 100 invites a user to chat.
  • the method of setting the first recipient list based on the previously managed chat participant list may be a method of setting the first recipient list while the chat is already being performed.
  • Identification information corresponding to the new client device may be added to the chat participant list managed before the second package data is received based on the second recipient list included in the second message header packaged in the second package data. .
  • the message is received.
  • the identification information corresponding to the specific other client device, which is the second sender information included in the second message header packaged in the second package data, may be deleted from the chat participant list managed before the second package data is received.
  • Each of the first message type information and the second message type information mentioned above may be one of invitation message type information, general message type information, and exit message type information.
  • the client-based chat service may be a 1-1 chat service or a group chat service.
  • the 1-1 chat service and the group chat service differ only in one or more identification information corresponding to the client from the recipient list included in the message header packaged in the package data to be delivered.
  • the operation of 110 and the client device 100 is the same.
  • the group information may be further included in the first message header.
  • Group information may be further included in the second message header.
  • the chat server 110 may more quickly extract the corresponding package data to be delivered among the package data stored in the message storage space.
  • the client device 100 can more conveniently and quickly manage the package data for each chat. Accordingly, a faster chat service can be provided to the user.
  • step S306 in order to check whether there is the second package data to be obtained from the chat server 110, the message request data including the identification information corresponding to the client device 100 is transmitted to the chat server 110.
  • 2 package data may be received from the chat server (110).
  • the second receiver list in the second package data includes identification information corresponding to the client device 100.
  • the message request data may be received in the standby state without transmitting the message request data to the chat server 110.
  • step S300 The above-described procedure is merely an example in which the client device 100 first transmits a message (first message), and then receives a message (second message) input from another client device later, in step S300. And step S302 may be executed after steps S304 and S306.
  • the client device 100 described above is a mobile terminal such as a smartphone, a tablet PC, a mobile communication terminal, etc., which provides a client-based chat service by executing an application (chat client program) installed through an application store server. Can be.
  • the physical device on which the method for providing a client-based chat service according to the above-described embodiment of the present invention is executed is a client device 100, the method for providing a client-based chat service according to the embodiment of the present invention is executed.
  • the actual subject may be an application installed in the client device 100, that is, a chat program.
  • the method for providing a client-based chat service may be implemented in a program (ie, an application) and recorded in a computer-readable recording medium.
  • the program implementing the method for providing a client-based chat service includes a function of outputting an input first message on a chat screen, and, when a first message is input, first sender information and a first message.
  • Execute a function such as output to the chat screen.
  • Such a program is recorded on a recording medium readable by a computer and executed by a computer so that the above functions can be executed.
  • the above-described program may be executed by a computer processor (CPU).
  • Code may be coded in a computer language such as C, C ++, JAVA, or machine language that can be read through a computer device interface.
  • Such code may include a function code associated with a function or the like that defines the above-described functions, and may include execution procedure-related control code necessary for a processor of the computer to execute the above-described functions according to a predetermined procedure.
  • Such code must be referenced from any location (address address) of the computer's internal or external memory for additional information or media necessary for the processor of the computer to execute the method of providing a client-based chat service according to an embodiment of the present invention.
  • Memory reference related code may be further included.
  • the code is The communication module of the computer may further include communication-related code on how to communicate with any other computer or chat server in a remote, and what information or media should be transmitted and received during communication.
  • codes and code segments associated therewith may be used in consideration of a system environment of a computer that reads a recording medium and executes the program. It may be easily inferred or changed by.
  • Examples of recording media that can be read by a computer recording a program as described above include, for example, a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical media storage device, and the like.
  • a computer-readable recording medium having recorded a program as described above may be distributed to computer systems connected through a network so that computer-readable codes may be stored and executed in a distributed manner.
  • any one or more of the plurality of distributed computers may execute some of the functions presented above, and transmit the results to one or more of the other distributed computers, and receive the results.
  • the computer may also execute some of the functions presented above, and provide the results to other distributed computers as well.
  • a computer-readable recording medium recording an application which is a program for executing a method of providing a client-based chat service according to an embodiment of the present invention, may be a storage medium (eg, a hard disk, etc.) included in an application store chat server. ) Or the application store chat server itself.
  • a computer capable of reading a recording medium recording an application which is a program for executing a method of providing a client-based chat service according to an embodiment of the present invention is not only a general PC such as a general desktop or a laptop, but also a smartphone and a tablet.
  • the client device 100 may include a mobile terminal such as a personal computer (PDA), a personal digital assistant (PDA), and a mobile communication terminal.
  • PDA personal computer
  • PDA personal digital assistant
  • the present invention should be interpreted as any device capable of computing.
  • a computer capable of reading a recording medium recording an application which is a program for executing a method of providing a client-based chat service according to an embodiment of the present invention may be a smartphone, a tablet PC, a personal digital assistant (PDA), a mobile communication terminal, or the like.
  • the application may be downloaded from the application store server to a general PC and installed on the client device 100 through a synchronization program.
  • an application (chat program) installed in the client device 100 executes the client-based chat service according to the above-described embodiment of the present invention.
  • client C an application (chat program) installed in the client device 100
  • Client-based chat service can be implemented by the protocol specified in the present invention.
  • These protocols define rules for data delivery methods (message delivery methods), data formats, and the like.
  • FIG. 6 is a diagram illustrating a message transmission procedure and a message reception procedure according to a protocol for providing a client-based chat service according to an embodiment of the present invention.
  • the protocol for providing a client-based chat service defines a rule for a data delivery method, wherein the rule for the data delivery method is that the client C sends a message to the chat server S.
  • the rule for the message transmission procedure can be divided into a rule for the message reception procedure that the client (C) receives a message from the chat server (S).
  • Such a message transmission procedure and a message reception procedure may be performed in a request-response manner.
  • FIG. 6 (a) illustrating a message transmission procedure
  • the client C packages the input message with a message header to generate package data, and then generates the package data.
  • the data is transmitted to the chat server S as delivery request data REQUEST (S11).
  • the chat server S receives the package data in which the message is packaged from the client C, the chat server S stores the message data in the message storage space (S12), and transmits the message delivery response data to the corresponding client C (S13).
  • the client C receives a package to which the client C retrieves while the chat server S stores the package data in the message storage space.
  • message request data including receiver information, which is identification information corresponding to the client C, is transmitted to the chat server S (S21).
  • the chat server (S) receives the message request data and checks the receiver information included in the message request data to check whether the package data including the confirmed destination information in the recipient list is stored in the message storage space.
  • the extracted package data is extracted from the message storage space (S22), and the extracted package data is transmitted to the client C as message response data (S23).
  • FIG. 7 illustrates a rule of a data format according to a protocol for providing a client-based chat service according to an exemplary embodiment of the present invention.
  • package data as message delivery request data transmitted from the client C to the chat server S includes a message header including sender information, a recipient list, message type information, and the like. Contains the message actually entered by The message header may optionally include group information.
  • the message delivery response data that the client C receives from the chat server S with respect to the message delivery request data includes a result code, result information, etc. for the message delivery request data reception processing result. It may include.
  • the message request data transmitted from the client C to the chat server S includes recipient information as identification information corresponding to the client C, and the like.
  • the message response data that the client C receives from the chat server S with respect to the message request data is received by the chat server S by receiving package data as the message delivery request data. It is stored without processing, and has the same data format as package data as message transfer request data.
  • FIG. 8 is a diagram exemplarily defining message type information according to a protocol for providing a client-based chat service according to an embodiment of the present invention.
  • the message type information included in the message header is information defining the type of the message.
  • the message type information includes invitation message type information M01, general message type information M02 related to the actual chatting content, and exit message type information. (M03) and the like.
  • message type information about various functions required for chatting, such as accepting an invitation or rejecting an invitation may be further defined.
  • FIG. 9 is a diagram illustrating an environment for implementing a client-based chat service.
  • three users user 1, user 2, and user 3 who own a smartphone as the client device 100 chat.
  • user 1 is a user who wants to chat for the first time.
  • three smartphones may communicate with the chat server S through a network 120 such as a Wi-Fi network, a mobile communication network, or an Internet network.
  • a network 120 such as a Wi-Fi network, a mobile communication network, or an Internet network.
  • each smartphone owned by three users is provided with an application (program) capable of executing a method of providing a client-based chat service according to an embodiment of the present invention.
  • the applications installed in each of the three smartphones are also referred to as C1, C2, and C3 as a client interworking with the chat server (S).
  • the application C1 displays a chat screen as shown in FIG. 9.
  • corresponding applications installed in the smart phones of the user 2 and the user 3 may be running in the background.
  • the application C1 provides a user invitation UI (User Interface).
  • the user 1 presses the find partner button to chat with the user 2 and the user 3, the phone numbers of the user 2 and the user 3 from the contacts stored in the smart phone ( It is an example of the identification information corresponding to the client device), and then press the invite button can invite the user 2 and the user 3.
  • U1, U2, and U3 described in the data field correspond to identification information corresponding to the user's smartphone (client device), the user's smartphone 2 (client device), and the user 3's smartphone (client device), respectively.
  • This may be a phone number or user information (eg, ID, nickname, etc.) corresponding to the phone number.
  • C1 when the user sets a user to invite and presses the invite button, C1 performs an invitation function.
  • This invitation function is executed according to the message transmission procedure (FIG. 10) and the message reception procedure (FIG. 11) defined in the protocol.
  • C1 sets a recipient list including U2 and U3, sets U1 as sender information, sets group information to GO1, sets message type information to M01 (invitation message type information), and Package data 1000 by packaging a message header including the sender information, the recipient list, the group information, and the message type information, and a message M of basic contents such as "invite" or input by the user. Generate and transmit the generated package data 1000 to the chat server S as message delivery request data.
  • the chat server S stores package data 1000 as message delivery request data received from C1 in a message storage space. Thereafter, the chat server S transmits message delivery response data 1010 including a result code (RC) and result information (RI) to C1.
  • message delivery response data 1010 including a result code (RC) and result information (RI) to C1.
  • each of U2 and U3 set in the recipient list in the package data 1000, which is the message delivery request data, is stored.
  • a message receiving procedure for receiving the package data 1000 corresponding to C2 and C3 as message delivery request data will be described with reference to FIG. 11.
  • C2 sets U2, which is identification information corresponding to C2, as receiver information and transmits message request data 1110 including such receiver information to the chat server S.
  • the chat server S checks whether the receiver list included in the message header packaged in the package data 1000 stored in the message storage space includes U2, which is receiver information included in the message request data 1110, If included, the package data 1000 stored in the message storage space is transmitted to the C2 as the message response data. In this manner, C2 may receive the package data 1000 stored in the chat server S as message response data.
  • C3 sets U3, which is identification information corresponding to C3, as recipient information, and transmits the message request data 1120 including the recipient information to the chat server S to store the message stored in the chat server S.
  • Data 1000 may be received as message response data.
  • C2 and C3 After receiving the package data 1000 according to the procedure of FIG. 11, C2 and C3 display the contents (invitation contents) of the message packaged in the package data 1000 by displaying a popup form or a chat screen, and the user displays the invitation fact. can confirm.
  • C2 and C3 may provide a user interface for invitation acceptance or invitation rejection.
  • C2 sets the sender information to U2 and sets a recipient list including U1 and U3.
  • group information is set to G01 and the message type information is set to MO2 (general message type information) to create a message header and package the input message to generate the packaging data 1200.
  • C2 then transmits the generated packaging data 1200 to the chat server S as message delivery request data. Accordingly, the chat server S stores the packaging data 1200 in the message storage space, and transmits the message delivery response data 1210 including the result code RC and the result information RI to C2.
  • Message request data 1310 and 1320 are sent to the chat server S to check if there is package data to import and to import it.
  • C1 transmits the message request data 1310 in which U1, which is identification information corresponding to C1, is set to the receiver information, to the chat server S, and C3 is a message request, in which U3, which is identification information corresponding to C3, is set to the receiver information.
  • the data 1320 is transmitted to the chat server S.
  • the chat server S checks the receiver information included in the message request data 1310 received from C1 as U1, extracts the package data 1200 included in the recipient list from U1, and transmits it to C1.
  • chat server S confirms the receiver information included in the message request data 1320 received from the C3 as U3, and extracts the package data 1200 included in the recipient list from the U3 and transmits it to the C3.
  • C1 and C3 confirm that the message type information included in the message header packaged in the received package data 1200 is general message type information M02, and output a message packaged in the package data 1200 to the chat screen. .
  • a message may be transmitted by transmitting a message between C1, C2, and C3 through a message transmission procedure and a message reception procedure.
  • any user of the participant may stop the chat.
  • the application may provide a user interface such as an exit button for providing an exit function.
  • a message delivery procedure (message transmission and message reception procedure) related to the exit function will be described with reference to FIGS. 14 and 15.
  • C3 sets the sender information to U3 and includes U1 and U2 in the recipient list, and exits the message type information.
  • the message header is configured by setting M03, which is the type information
  • the packaging data 1400 is generated by packaging a message having the configured message header and the contents such as "User 3 leaves the chat room.”
  • C3 transmits the generated packaging data 1400 to the chat server S as message delivery request data. Accordingly, the chat server S stores the package data 1400 in the message storage space.
  • Message request data 1510 and 1520 are sent to the chat server S to check if there is package data to import and to import it.
  • C1 transmits the message request data 1510 in which U1, which is identification information corresponding to C1, is set to the receiver information, to the chat server S, and C2 is a message request, in which U2, which is identification information corresponding to C2, is set to the receiver information.
  • the data 1520 is transmitted to the chat server (S).
  • the chat server S checks the receiver information included in the message request data 1510 received from C1 as U1, extracts the package data 1400 included in the receiver list, and transmits the package data 1400 to C1.
  • chat server S confirms the receiver information included in the message request data 1520 received from the C2 as U2, extracts the package data 1400 included in the recipient list, and transmits the package data 1400 to the C2.
  • C1 and C2 confirm that the message type information included in the message header packaged in the received package data 1400 is the exit message type information M03, and output the message packaged in the package data 1400 to the chat screen. . Accordingly, the user 1 and the user 2 can confirm that the user 3 has left the chat room.
  • a client-based chat service suitable for a mobile environment can be provided.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 채팅 서비스 기술에 관한 것으로서, 더욱 상세하게는, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버 및 기록매체에 관한 것이다.

Description

클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체
본 발명은 채팅 서비스 기술에 관한 것으로서, 특히, 모바일 환경에 적합한 채팅 서비스 기술에 관한 것이다.
종래의 채팅 서비스에서는, 채팅 서버가 사용자 컴퓨터 접속 관리, 이용자 관리, 채팅방 관리, 메시지 관리, 각종 제어 기능 등과 같은 많은 기능들을 수행한다. 이러한 의미에서 종래의 채팅 서비스는 서버 기반의 채팅 서비스이다.
또한 종래의 채팅 서비스는 모바일 환경에서 비해 더 좋은 네트워크 상황에서 그리고 일반적인 웹 환경에서 이루어진다.
그리고, 종래의 서버 기반의 채팅 서비스에서는 복잡하고 많은 기능들이 사용자에게 제공되기 때문에, 서버가 많은 기능들을 수행해야 하는 것은 물론, 서버에 접속한 이용자의 컴퓨터에서도 그만큼 많은 기능들을 수행해야만 한다.
따라서, 종래의 서버 기반의 채팅 서비스가 이루어지는 웹 환경 및 네트워크 환경에 비해 모든 면에서 상대적으로 열악한 모바일 환경에서, 종래의 채팅 서비스를 그대로 적용하게 되면, 채팅 서비스 품질과 사용자 편리성 등이 크게 저하되는 문제점이 있다.
이러한 배경에서, 본 발명의 목적은, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공하는 데 있다.
전술한 목적을 달성하기 위하여, 일 측면에서, 본 발명은, 제1클라이언트 장치에 대응되는 식별정보인 송신자 정보, 하나 이상의 제2클라이언트 장치에 각각 대응되는 식별정보를 포함하는 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 제1클라이언트 장치에서 입력된 메시지가 패키징된 패키지 데이터를 상기 제1클라이언트 장치로부터 수신하는 메시지 수신부; 상기 패키지 데이터를 저장하는 메시지 저장부; 및 상기 수신자 리스트를 참조하여 상기 저장된 패키지 데이터를 상기 하나 이상의 제2클라이언트 장치로 송신하는 메시지 송신부를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버를 제공한다.
다른 측면에서, 본 발명은, 채팅 서버가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 있어서, 제1클라이언트 장치에 대응되는 식별정보인 송신자 정보, 하나 이상의 제2클라이언트 장치에 각각 대응되는 식별정보를 포함하는 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 제1클라이언트 장치에서 입력된 메시지가 패키징된 패키지 데이터를 상기 제1클라이언트 장치로부터 수신하는 단계; 상기 패키지 데이터를 저장하는 단계; 및 상기 수신자 리스트를 참조하여 상기 저장된 패키지 데이터를 상기 하나 이상의 클라이언트 장치로 송신하는 단계를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법을 제공한다.
또 다른 측면에서, 본 발명은, 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하고, 상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 제1패키지 데이터 송신부; 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 제2패키지 데이터 수신부; 및 상기 입력된 제1 메시지 및 상기 제2메시지를 채팅 화면에 출력하는 채팅 화면 제어부를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치를 제공한다.
또 다른 측면에서, 본 발명은, 클라이언트 장치가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 있어서, 입력된 제1메시지를 채팅 화면에 출력하는 단계; 상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 단계; 상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 단계; 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 단계; 및 상기 제2메시지를 상기 채팅 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법을 제공한다.
또 다른 측면에서, 본 발명은, 메시지가 입력되면 송신자 정보, 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 입력된 메시지를 패키징하여 패키지 데이터를 생성하여 송신하고, 상기 입력된 메시지를 채팅 화면에 출력하는 제1클라이언트; 상기 패키지 데이터를 수신하여 저장해두고, 상기 수신자 리스트를 참조하여 상기 패키지 데이터를 전달하는 채팅 서버; 및 상기 패키지 데이터를 전달받고, 상기 패키지 데이터에 패키징된 메시지를 채팅 화면에 출력하는 제2클라이언트를 포함하되, 상기 수신자 리스트는 상기 제2클라이언트에 대응되는 식별정보를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 제공한다.
또 다른 측면에서, 본 발명은, 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서, 입력된 제1메시지를 채팅 화면에 출력하는 기능과, 상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 기능과, 상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 기능과, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 기능과, 상기 제2메시지를 상기 채팅 화면에 출력하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공하는 효과가 있다.
도 1은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버에 대한 블록도이다.
도 3은 본 발명의 실시예에 따른 채팅 서버가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 4는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치에 대한 블록도이다.
도 5는 본 발명의 실시예에 따른 클라이언트 장치가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 6은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 송신 절차 및 메시지 수신 절차를 나타낸 도면이다.
도 7은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 데이터 포맷을 나타낸 도면이다.
도 8은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 타입 정보를 예시적으로 정의한 도면이다.
도 9 내지 도 15는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 예시적으로 설명하기 위한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템은, 채팅 서비스를 이용하는 사용자의 클라이언트 장치(100)와, 클라이언트 장치(100)에서 사용자에 의해 입력된 메시지를 클라이언트 장치(100) 간에 전달해주는 채팅 서버(110) 등을 포함한다.
본 발명에서 개시하는 채팅 서비스는 웹 환경에 비해 개인 아이덴티티(Identity)가 상대적으로 명확한 모바일 환경에 더욱 적합한 "클라이언트 기반의 채팅 서비스(Client-based Chatting Service)"이다.
여기서, "모바일 환경"이란, 통신사에 가입한 사용자가 이동 통신 서비스 또는 무선 통신 서비스 등을 이용하는 환경을 의미하는 것으로서, 이러한 모바일 환경에서는 전화번호, 전화번호와 대응되는 사용자 정보 등과 같이 변하지 않는 고유한 개인 아이덴티티(Identity)가 명확하다.
종래의 채팅 서비스에서는, 채팅 서버가 사용자 컴퓨터 접속 관리, 이용자 관리, 채팅방 관리, 메시지 관리, 각종 제어 기능 등과 같은 많은 기능들을 수행한다. 이러한 의미에서 종래의 채팅 서비스는 서버 기반의 채팅 서비스이다.
또한 종래의 채팅 서비스는 모바일 환경에서 비해 더 좋은 네트워크 상황에서 이루어지고 일반적인 웹 환경에서 이루어진다.
그리고, 종래의 서버 기반의 채팅 서비스에서는 복잡하고 많은 기능들이 사용자에게 제공되기 때문에, 서버가 많은 기능들을 수행해야 하는 것은 물론, 서버에 접속한 이용자의 컴퓨터에서도 그만큼 많은 기능들을 수행해야만 한다.
따라서, 종래의 서버 기반의 채팅 서비스가 이루어지는 웹 환경 및 네트워크 환경에 비해 모든 면에서 상대적으로 열악한 모바일 환경에서, 종래의 채팅 서비스를 그대로 적용하게 되면, 채팅 서비스 품질과 사용자 편리성 등이 크게 저하되는 문제점이 있다.
따라서, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스에서는, 전술한 모바일 환경에 적합하도록, 웹 환경에서 제공되던 무거운 채팅 서비스에서의 기능적 요소들을 심플하게 하고, 채팅 서버(110)는 심플화된 기능적 요소들 중에서 클라이언트 장치(100) 간의 메시지 전달 기능만을 수행하고, 클라이언트 장치(100)가 나머지 심플화된 기능적 요소들을 수행한다. 이에 대해서는, 도 2 내지 도 3를 참조하여 더욱 상세하게 설명한다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템에 포함된 클라이언트 장치(100)와 채팅 서버(110)는 네트워크(120)를 통해 서로 연결되어 채팅 서비스를 제공하기 위하여 통신한다.
여기서, 네트워크(120)는 유무선 기반의 네트워크로서, 채팅 서버(110)가 연결되는 액세스 망과, 클라이언트 장치(100)가 연결되는 액세스 망(예: 이동통신망, 무선 랜(WiFi) 등)과, 이러한 액세스 망들을 연결해주는 여러 형태일 수 있는 코어 망(Core Network) 등을 포함할 수 있다.
전술한 클라이언트 장치(100)는 스마트폰, 태블릿 PC, 이동통신 단말기 등일 수 있으며, 이외에도, 통신기능을 갖는 어떠한 휴대용 단말기일 수 있다.
또한 클라이언트 장치(100)는 애플리케이션 스토어 서버를 통해 설치된 애플리케이션을 실행시켜 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공한다. 즉, 애플리케이션 스토어 서버를 통해 클라이언트 장치(100)에 설치된 애플리케이션은, 클라이언트 장치(100)의 하드웨어 구성(예: 통신모듈, 메모리, 프로세서, 디스플레이 등)을 이용하여 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공한다.
전술한 바와 같이, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위하여 채팅 서버(110)는, 클라이언트 장치(100) 간의 메시지 전달 기능을 수행하는데, 이러한 채팅 서버(110)에 대하여 도 2 내지 도 3을 참조하여 아래에서 더욱 상세하게 설명한다.
도 2는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버(110)에 대한 블록도이다.
단, 아래에서는, 입력된 메시지를 다른 클라이언트 장치(100)로 전달하기 위하여 채팅 서버(110)로 메시지를 송신하는 클라이언트 장치(100)를 "제1클라이언트 장치(100a)"라고도 하고, 채팅 서버(100)에 저장된 메시지를 수신하는 클라이언트 장치(110)를 "제2클라이언트 장치(100b)"라고도 한다. 하나의 클라이언트 장치(100)는 메시지가 입력되어 채팅 서버(100)로 송신하는 때에는 제1클라이언트 장치(100a)로 작동하고 채팅 서버(100)로부터 메시지를 수신하는 때에는 제2클라이언트 장치(100b)로 작동한다. 즉, 제1클라이언트 장치(100a)와는 제2클라이언트 장치(100b)는 서로 다른 클라이언트 장치(100)일 수도 있고, 어떠한 한 시점에서의 역할을 구분하기 위하여 동일한 클라이언트 장치(100)를 다르게 나타낸 것일 수도 있다.
도 2를 참조하면, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버(110)는, 메시지 전달을 위해, 제1클라이언트 장치(100a)에서 입력된 메시지를 제1클라이언트 장치(100a)로부터 수신하는 메시지 수신부(210)와, 제1클라이언트 장치(100a)로부터 수신한 메시지를 저장하는 메시지 저장부(220)와, 저장된 메시지를 제2클라이언트 장치(100b)로 송신하는 메시지 송신부(230) 등을 포함한다.
본 발명에서는, 제1클라이언트 장치(100a)로부터 수신된 메시지(사용자에 의해 입력된 메시지)가 해당 제2클라이언트 장치(100b)로 정확히 전달되기 위해서, 사용자에 의해 입력된 메시지는 메시지 헤더가 붙어서 패키징 되어 패키지 데이터의 형태로 전달된다. 여기서, 메시지 헤더에는, 메시지를 보내는 송신자 정보, 메시지를 받는 수신자 정보를 포함하는 수신자 리스트, 메시지 타입 정보 등을 포함한다.
단, 아래에서는, 제1클라이언트 장치(100a)에서 채팅 서버(110)로 송신되는 패키지 데이터, 메시지 및 메시지 헤더를 "제1패키지 데이터", "제1메시지" 및 "제1메시지 헤더"라고도 한다. 채팅 서버(110)에서 제2클라이언트 장치(100b)로 송신되는 패키지 데이터, 메시지 및 메시지 헤더를 "제2패키지 데이터", "제2메시지" 및 "제2메시지 헤더"라고도 한다.
메시지 M이 클라이언트 장치 A에서 채팅 서버(110)를 통해 클라이언트 장치 B로 전달되는 경우, 채팅 서버(110)가 클라이언트 장치 A로부터 수신하는 메시지 M은 제1메시지이고, 채팅 서버(110)가 클라이언트 장치 B로 송신하는 메시지 M은 제2메시지이다. 또한, 클라이언트 장치 A가 채팅 서버(110)로 송신하는 메시지 M은 제1메시지이고, 클라이언트 장치 B가 채팅 서버(110)로부터 수신하는 메시지 M은 제2메시지이다. 즉, "제1메시지와 제2메시지"는 채팅 서버(110)가 수신하는 메시지와 송신하는 메시지를 구분하거나, 클라이언트 장치(100)가 송신하는 메시지와 수신하는 메시지를 구분하기 위하여 구분하여 사용한 것일 뿐, 실제로는 동일한 메시지일 수도 있다.
제1패키지 데이터가 제1클라이언트 장치(100a)에서 채팅 서버(110)를 통해 제2클라이언트 장치(100b)로 전달된다.
메시지가 패키징 되어 전달되는 경우, 메시지 수신부(210)는, 제1클라이언트 장치(100a)에 대응되는 식별정보인 제1송신자 정보, 하나 이상의 제2클라이언트 장치(100b)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 "제1메시지 헤더"와 제1클라이언트 장치(100a)에서 입력된 "제1메시지"가 패키징된 제1패키지 데이터를 제1클라이언트 장치(100a)로부터 수신한다. 메시지 저장부(220)는, 제1클라이언트 장치(100a)로부터 수신한 제1패키지 데이터를 메시지 저장 공간에 저장한다. 그리고, 메시지 송신부(230)는 제1패키지 데이터에서의 제1수신자 리스트를 참조하여 메시지 저장 공간에 저장된 제1패키지 데이터를 하나 이상의 제2클라이언트 장치(100b)로 송신한다. 여기서, 클라이언트 정치(100)에 대응되는 식별정보는, 일 예로, 전화번호, 전화번호와 대응될 수 있는 사용자 정보 등의 개인 고유의 정보일 수 있다.
전술한 메시지 송신부(230)는 저장된 제1패키지 데이터를 풀(Pull) 방식 또는 푸시(Push) 방식으로 하나 이상의 제2클라이언트 장치(100b)로 송신할 수 있다.
만약, 풀(Pull) 방식으로 송신하는 경우, 메시지 송신부(230)는 제2클라이언트 장치(100b)로부터 메시지 요청 데이터가 수신되면, 제2클라이언트 장치(100b)에 대응되는 식별정보가 저장된 제1패키지 데이터에서의 제1수신자 리스트에 포함되어 있는지를 확인하여, 포함되어 있는 것으로 확인되면, 제2클라이언트 장치(100b)로 저장된 제1패키지 데이터를 송신한다. 이 경우, 제2클라이언트 장치(100b)의 사용자의 입력에 따라 메시지 요청 데이터를 송신하거나, 제2클라이언트 장치(100b)에 설치된 애플리케이션이 실행되어 있다가 애플리케이션이 주기적 또는 이벤트 발생시 자동으로 메시지 요청 데이터를 채팅 서버(110)로 송신해야 한다.
만약, 푸시(Push) 방식으로 송신하는 경우, 메시지 송신부(230)는 제1패키지 데이터가 저장되면 저장된 제1패키지 데이터에서의 제1수신자 리스트를 확인하여 이러한 확인을 통해 알게 된 해당 제2클라이언트 장치(100b)로 제1패키지 데이터를 송신할 수 있다. 이러한 경우, 제2클라이언트 장치(100b)는 제1패키지 데이터를 수신할 수 있는 상태로 되어 있거나, 제2클라이언트 장치(100b)에 설치된 애플리케이션이 실행되어 있기만 하면 된다.
전술한 설명에 기초하여, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 시스템을 다시 설명하면, 시스템은, 메시지가 입력되면 송신자 정보, 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 입력된 메시지를 패키징하여 패키지 데이터를 생성하여 송신하고, 입력된 메시지를 채팅 화면에 출력하는 제1클라이언트 장치(100a)와, 패키지 데이터를 제1클라이언트 장치(100a)로부터 수신하여 저장해두고, 패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트를 참조하여 패키지 데이터를 전달하는 채팅 서버(110)와, 패키지 데이터를 채팅 서버(110)로부터 전달받고, 전달받은 패키지 데이터에 패키징된 메시지를 채팅 화면에 출력하는 제2클라이언트 장치(100b)를 포함한다.
패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트는 제2클라이언트 장치(100b)에 대응되는 식별정보를 포함한다.
제2클라이언트 장치(100b)는, 패키지 데이터에 패키징된 메시지 헤더에 포함된 송신자 정보와 수신자 리스트를 토대로 채팅 참여자 리스트를 파악하여 새로운 참여자를 추가하거나 기존 참여자를 삭제하는 등의 관리 기능을 수행할 수 있다.
도 3은 본 발명의 실시예에 따른 채팅 서버(110)가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 채팅 서버(110)가 클라이언트 기반의 채팅 서비스를 제공하는 방법은, 제1클라이언트 장치(100a)에 대응되는 식별정보인 제1송신자 정보, 하나 이상의 제2클라이언트 장치(100b)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 제1클라이언트 장치(100a)에서 입력된 제1메시지가 패키징된 제1패키지 데이터를 제1클라이언트 장치(100a)로부터 수신하는 단계(S300)와, 수신된 제1패키지 데이터를 저장하는 단계(S302)와, 저장된 제1패키지 데이터에서의 제1수신자 리스트를 참조하여 저장된 제1패키지 데이터를 하나 이상의 제2클라이언트 장치(100b)로 송신하는 단계(S304) 등을 포함한다.
이하에서는, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)에 대하여 도 4 및 도 5를 참조하여 더욱 상세하게 설명한다.
도 4는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)에 대한 블록도이다.
도 4를 참조하면, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)는, 사용자에 의해 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 사용자에 의해 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하고, 이렇게 생성된 제1패키지 데이터를 채팅 서버(110)로 송신하는 제1패키지 데이터 송신부(410)와, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 채팅 서버(110)로부터 수신하는 제2패키지 데이터 수신부(420)와, 사용자에 의해 입력된 제1 메시지 및 제2패키지 데이터에 패키징된 제2메시지를 채팅 화면에 출력하는 채팅 화면 제어부(430) 등을 포함한다.
제1패키지 데이터 송신부(410)에 의해 제1패키지 데이터를 송신하는 클라이언트 장치(100)는 제1클라이언트 장치(100a)로서 동작하고, 제2패키지 데이터 수신부(420)에 의해 제2패키지 데이터를 수신하는 클라이언트 장치(100)는 제2클라이언트 장치(100b)로서 동작한다.
전술한 제1패키지 데이터 송신부(410)는, 제1메시지를 패키징하여 송신하기 위하여, 사용자 입력 또는 미리 관리되고 있던 채팅 참여자 리스트를 토대로 하나 이상의 다른 클라이언트 장치(클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자의 클라이언트 장치이거나 클라이언트 장치(100)의 사용자 채팅하고 있는 사용자의 클라이언트 장치임)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트를 설정할 수 있다.
여기서, 사용자 입력에 따라 제1수신자 리스트를 설정하는 방식은 클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자를 초대할 때 제1수신자 리스트를 설정하는 방식일 수 있다. 또한, 미리 관리되고 있던 채팅 참여자 리스트를 토대로 제1수신자 리스트를 설정하는 방식은 이미 채팅이 이루어지고 있는 동안에 제1수신자 리스트를 설정하는 방식일 수 있다.
한편, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)는, 채팅하는 있는 모든 사용자(참여자)의 리스트를 관리하는 기능을 수행할 수 있다. 이를 위해, 도 4에 도시된 바와 같이, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 클라이언트 장치(100)는, 하나 이상의 다른 클라이언트 장치와 클라이언트 장치(100)에 각각 대응되는 식별정보를 포함하는 채팅 참여자 리스트를 관리하는 채팅 참여자 리스트 관리부(440)를 더 포함할 수 있다.
전술한 채팅 참여자 리스트 관리부(440)는, 제2메시지 타입 정보가 "초대 메시지 타입 정보"인 제2패키지 데이터를 채팅 서버(110)로부터 수신한 이후에, 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2수신자 리스트를 토대로 새로운 클라이언트 장치에 대응되는 식별정보를 기존에 관리되고 있던 채팅 참여자 리스트에 새로운 클라이언트 장치에 대응되는 식별정보를 추가할 수 있다.
다시 말해, 클라이언트 장치(100)의 사용자와 채팅하고 있는 다른 사용자가 누군가를 초대하기 위하여, 초대할 사용자의 클라이언트 장치에 대응되는 식별정보를 수신자 리스트(클라이언트 장치(100)의 입장에서는 제2수신자 리스트)에 포함시키고 메시지 타입 정보를 초대 메시지 타입 정보로 설정하여 패키지 데이터(클라이언트 장치(100)의 입장에서는 제2패키지 데이터)를 채팅 서버(110)를 통해 전달하면, 패키지 데이터를 수신하는 모든 클라이언트 장치는 기존에 관리하고 있던 참여자 리스트에는 포함되지 않은 "초대할 사용자의 클라이언트 장치에 대응되는 식별정보"를 추가하는 것이다.
전술한 채팅 참여자 리스트 관리부(440)는, 제2메시지 타입 정보가 "나가기 메시지 타입 정보"인 제2패키지 데이터를 채팅 서버(110)로부터 수신한 이후에, 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2송신자 정보인 특정 다른 클라이언트 장치에 대응되는 식별정보를 기존에 관리하고 있던 채팅 참여자 리스트에서 삭제할 수 있다.
다시 말해, 클라이언트 장치(100)의 사용자와 채팅하고 있는 다른 사용자(채팅을 중지한 사용자)가 채팅을 그만 하기 위하여 나가기 버튼을 누르는 등을 조작한 경우에, 채팅을 중지한 사용자의 클라이언트 장치에서는, 송신자 정보(클라이언트 장치(100)의 입장에서는 제2송신자 정보)를 자신에 대응되는 식별정보로 설정하고 메시지 타입 정보(클라이언트 장치(100)의 입장에서는 제2메시지 타입 정보)를 나가기 메시지 타입 정보로 설정하여 패키지 데이터(클라이언트 장치(100)의 입장에서는 제2패키지 데이터)를 채팅 서버(110)로 송신하면, 이 패키지 데이터를 수신한 모든 클라이언트 장치는 채팅을 중지한 사용자의 클라이언트 장치에 대응되는 식별정보를 기존에 관리하고 있던 참여자 리스트에서 삭제한다.
위에서 언급한 제1메시지 타입 정보 및 제2메시지 타입 정보는 초대 메시지 타입 정보, 일반 메시지 타입 정보 및 나가기 메시지 타입 정보 등 중 하나일 수 있다.
전술한 제2패키지 데이터 수신부(420)는, 채팅 서버(110)로부터 제2패키지 데이터를 수신하기 위하여, 채팅 서버(110)의 메시지 저장 공간에 가져올 제2패키지 데이터가 있는지를 확인하기 위하여, 클라이언트 장치(100)에 대응되는 식별정보를 포함하는 메시지 요청 데이터를 채팅 서버(110)로 송신하여, 제2패키지 데이터를 수신할 수 있다. 이때 수신되는 제2패키지 데이터에서의 제2수신자 리스트에는 클라이언트 장치(100)에 대응되는 식별정보가 포함되어 있다.
전술한 제2패키지 데이터 수신부(420)는, 메시지 요청 데이터를 채팅 서버(110)로 송신하지 않고, 대기 상태에서 메시지 요청 데이터를 수신할 수도 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스는, 1-1 채팅 서비스일 수도 있고 그룹 채팅 서비스일 수도 있다. 1-1 채팅 서비스 및 그룹 채팅 서비스는, 전달되는 패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트에 클라이언트에 대응되는 식별정보가 한 개인 것과 복수인 것만 다를 뿐, 그 제공 방식과, 채팅 서버(110) 및 클라이언트 장치(100)의 동작은 동일하다. 다만, 그룹 채팅 서비스를 효율적으로 제공하기 위하여, 패키지 데이터에 패키징된 메시지 헤더에 채팅 그룹을 식별하기 위한 그룹 정보를 더 포함시킬 수 있다. 여기서, 채팅 그룹은 같이 채팅을 하고 있는 사용자(클라이언트 장치)의 그룹을 의미하고, 이러한 채팅 그룹 내에서만 메시지가 전달되기 때문에 채팅 그룹은 메시지 전달 범위에 있는 사용자(클라이언트 장치)의 그룹을 의미할 수도 있습니다. 이러한 채팅 그룹은 2명의 사용자 간 1-1 채팅에 대한 채팅 그룹일 수도 있고, 3명 이상의 사용자 간 그룹 채팅에 대한 채팅 그룹일 수도 있다.
예를 들어, 그룹 정보가 메시지 헤더에 포함되어 있으면, 채팅 서버(110)가 메시지 저장 공간에 저장된 패키지 데이터 중 전달할 해당 패키지 데이터를 더욱 신속히 추출할 수 있다. 또한, 그룹 정보가 메시지 헤더에 포함되어 있으면, 클라이언트 장치(100)에서 여러 개의 채팅이 이루어지고 있는 동안, 클라이언트 장치(100)는 각 채팅 별로 해당 패키지 데이터를 더욱 편리하고 신속하게 관리할 수 있다. 이에 따라, 더욱 신속한 채팅 서비스를 사용자에게 제공할 수 있다.
도 4에 도시된 본 발명의 실시예에 따른 클라이언트 장치(100)는, 애플리케이션 스토어 서버(Application Store Sever)를 통해 설치된 애플리케이션(채팅 클라이언트 프로그램)을 실행시켜 클라이언트 기반의 채팅 서비스를 제공하는 스마트폰, 태블릿 PC, 이동통신 단말기 등의 모바일 단말기일 수 있다.
도 5는 본 발명의 실시예에 따른 클라이언트 장치(100)가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 대한 흐름도이다.
도 5를 참조하면, 본 발명의 실시예에 따른 클라이언트 장치(100)가 클라이언트 기반의 채팅 서비스를 제공하는 방법은, 사용자에 의해 입력된 제1메시지를 채팅 화면에 출력하는 단계(S300)와, 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 단계(S302)와, 생성된 제1패키지 데이터를 채팅 서버(110)로 송신하는 단계(S304)와, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 채팅 서버(110)로부터 수신하는 단계(S306)와, 제2메시지를 채팅 화면에 출력하는 단계(S308) 등을 포함한다.
전술한 절차는, 클라이언트 장치(100)가 메시지(제1메시지)를 먼저 송신한 이후 다른 클라이언트 장치에서 입력된 메시지(제2메시지)를 나중에 수신하는 경우를 가정한 일 예이다.
제1패키지 데이터에 패키징된 제1메시지 헤더에 포함된 제1송신자 정보는 클라이언트 장치(100)에 대응되는 식별정보이고, 제1수신자 리스트는 하나 이상의 다른 클라이언트 장치에 각각 대응되는 식별정보를 포함한다.
제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2송신자 정보는 하나 이상의 다른 클라이언트 장치 중 특정 다른 클라이언트 장치에 대응되는 식별정보이며, 제2수신자 리스트는 클라이언트 장치(100)에 대응되는 식별정보 등을 포함할 수 있다.
전술한 S302 단계에서는, 제1메시지를 패키징하여 송신할 제1패키지 데이터를 생성할 때, 사용자 입력 또는 미리 관리되고 있던 채팅 참여자 리스트를 토대로 하나 이상의 다른 클라이언트 장치(클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자의 클라이언트 장치이거나 클라이언트 장치(100)의 사용자 채팅하고 있는 사용자의 클라이언트 장치임)에 각각 대응되는 식별정보를 포함하는 제1수신자 리스트를 설정할 수 있다.
여기서, 사용자 입력에 따라 제1수신자 리스트를 설정하는 방식은 클라이언트 장치(100)의 사용자가 채팅하고자 하는 사용자를 초대할 때 제1수신자 리스트를 설정하는 방식일 수 있다. 또한, 미리 관리되고 있던 채팅 참여자 리스트를 토대로 제1수신자 리스트를 설정하는 방식은 이미 채팅이 이루어지고 있는 동안에 제1수신자 리스트를 설정하는 방식일 수 있다.
전술한 S306 단계 이후, 즉, 제2패키지 데이터를 수신한 이후에, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2메시지 타입 정보가 "초대 메시지 타입 정보"인 경우, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2수신자 리스트를 토대로 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에 새로운 클라이언트 장치에 대응되는 식별정보를 추가할 수 있다.
전술한 S306 단계 이후, 즉, 제2패키지 데이터를 수신한 이후에, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2메시지 타입 정보가 "나가기 메시지 타입 정보"인 경우, 수신한 제2패키지 데이터에 패키징된 제2메시지 헤더에 포함된 제2송신자 정보인 특정 다른 클라이언트 장치에 대응되는 식별정보를 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에서 삭제할 수 있다.
위에서 언급한 제1메시지 타입 정보 및 제2메시지 타입 정보 각각은, 초대 메시지 타입 정보, 일반 메시지 타입 정보 및 나가기 메시지 타입 정보 등 중 하나일 수 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스는, 1-1 채팅 서비스일 수도 있고 그룹 채팅 서비스일 수도 있다. 1-1 채팅 서비스 및 그룹 채팅 서비스는, 전달되는 패키지 데이터에 패키징된 메시지 헤더에 포함된 수신자 리스트에 클라이언트에 대응되는 식별정보가 한 개인 것과 복수인 것만 다를 뿐, 그 제공 방식과, 채팅 서버(110) 및 클라이언트 장치(100)의 동작은 동일하다. 다만, 그룹 채팅 서비스를 효율적으로 제공하기 위하여, 전술한 302 단계에서 제1패키지 데이터를 생성할 때, 제1메시지 헤더에 그룹 정보를 더 포함시킬 수 있다. 제2메시지 헤더에도 그룹 정보가 더 포함될 수 있다.
예를 들어, 그룹 정보가 메시지 헤더에 포함되어 있으면, 채팅 서버(110)가 메시지 저장 공간에 저장된 패키지 데이터 중 전달할 해당 패키지 데이터를 더욱 신속히 추출할 수 있다. 또한, 그룹 정보가 메시지 헤더에 포함되어 있으면, 클라이언트 장치(100)에서 여러 개의 채팅이 이루어지고 있는 동안, 클라이언트 장치(100)는 각 채팅 별로 해당 패키지 데이터를 더욱 편리하고 신속하게 관리할 수 있다. 이에 따라, 더욱 신속한 채팅 서비스를 사용자에게 제공할 수 있다.
전술한 S306 단계에서는, 채팅 서버(110)로부터 가져올 제2패키지 데이터가 있는지를 확인하기 위하여, 클라이언트 장치(100)에 대응되는 식별정보를 포함하는 메시지 요청 데이터를 채팅 서버(110)로 송신하여 제2패키지 데이터를 채팅 서버(110)로부터 수신할 수 있다. 이때, 제2패키지 데이터에서의 제2수신자 리스트에는 클라이언트 장치(100)에 대응되는 식별정보가 포함되어 있다.
또한, 전술한 S306 단계에서는, 메시지 요청 데이터를 채팅 서버(110)로 송신하지 않고, 대기 상태에서 메시지 요청 데이터를 수신할 수도 있다.
전술한 절차는, 클라이언트 장치(100)가 메시지(제1메시지)를 먼저 송신한 이후 다른 클라이언트 장치에서 입력된 메시지(제2메시지)를 나중에 수신하는 경우를 가정한 일 예일 뿐, 전술한 S300 단계 및 S302 단계는, S304 단계 및 S306 단계 이후에 실행될 수도 있다.
전술한 클라이언트 장치(100)는, 애플리케이션 스토어 서버(Application Store Sever)를 통해 설치된 애플리케이션(채팅 클라이언트 프로그램)을 실행시켜 클라이언트 기반의 채팅 서비스를 제공하는 스마트폰, 태블릿 PC, 이동통신 단말기 등의 모바일 단말기일 수 있다.
전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법이 실행되는 물리적인 장치는 클라이언트 장치(100)이더라도 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키는 실질적인 주체는 애플리케이션 스토어 서버를 클라이언트 장치(100)에 설치된 애플리케이션, 즉, 채팅 프로그램일 수 있다.
이에 따라, 전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법은 프로그램(즉, 애플리케이션)으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 구현한 프로그램은, 입력된 제1메시지를 채팅 화면에 출력하는 기능과, 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 기능과, 생성된 제1패키지 데이터를 채팅 서버(110)로 송신하는 기능과, 제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 채팅 서버(110)로부터 수신하는 기능과, 제2메시지를 채팅 화면에 출력하는 기능 등을 실행한다.
이러한 프로그램(애플리케이션)은 컴퓨터에 의해 읽힐 수 있는 기록매체에 기록되고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
이와 같이, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 컴퓨터의 장치 인터페이스(Interface)를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다.
또한, 이러한 코드는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
또한, 컴퓨터의 프로세서가 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 채팅 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 채팅 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
이상에서 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 하나 이상의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 하나 이상에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.
특히, 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 컴퓨터로 읽을 수 있는 기록매체는 애플리케이션 스토어 채팅 서버에 포함된 저장매체(예: 하드디스크 등) 또는 애플리케이션 스토어 채팅 서버 그 자체일 수도 있다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC 뿐만 아니라, 스마트폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함할 수 있는 클라이언트 장치(100)일 수 있으며, 이뿐만 아니라, 컴퓨팅(Comuputing) 가능한 모든 기기로 해석되어야 할 것이다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터가 스마트폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함하는 클라이언트 장치(100)인 경우, 애플리케이션은 애플리케이션 스토어 서버에서 일반 PC로 다운로드 되어 동기화프로그램을 통해 클라이언트 장치(100)에 설치될 수 있다.
이하에서는, 이상에서 전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 예시적으로 설명한다.
단, 이하에서는, 클라이언트 장치(100)에 설치된 애플리케이션(채팅 프로그램)이 전술한 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 실행시키는 것으로 설명한다. 그리고, 아래에서는, 설명의 편의상, 클라이언트 장치(100)에 설치된 애플리케이션(채팅 프로그램)을 "클라이언트(C)"라고 명명한다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스는 본 발명에서 정하는 프로토콜에 의해 구현될 수 있다. 이러한 프로토콜에는 데이터 전달 방식(메시지 전달 방식), 데이터 포맷 등에 대한 규칙이 정의된다. 채팅 서비스의 예를 설명하기에 앞서, 전술한 프로토콜을 도 6 내지 도 8을 참조하여 먼저 설명한다.
도 6은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 송신 절차 및 메시지 수신 절차를 나타낸 도면이다.
본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜은 데이터 전달 방식에 대한 규칙을 정의하는데, 데이터 전달 방식에 대한 규칙은, 클라이언트(C)가 채팅 서버(S)로 메시지를 송신하는 메시지 송신 절차에 대한 규칙과, 클라이언트(C)가 채팅 서버(S)로부터 메시지를 수신하는 메시지 수신 절차에 대한 규칙으로 나눌 수 있다. 이러한 메시지 송신 절차와 메시지 수신 절차는 요청(Request)-응답(Response) 방식으로 이루어질 수 있다.
메시지 송신 절차를 나타낸 도 6의 (a)를 참조하면, 클라이언트(C)는 사용자에 의해 메시지가 입력되면 입력된 메시지를 메시지 헤더와 함께 패키징하여 패키지 데이터를 생성하고, 이렇게 생성된 패키지 데이터를 메시지 전달 요청 데이터(REQUEST)로서 채팅 서버(S)로 송신한다(S11). 채팅 서버(S)는 클라이언트(C)로부터 메시지가 패키징된 패키지 데이터를 수신하면 메시지 저장 공간에 저장하고(S12), 메시지 전달 응답 데이터를 해당 클라이언트(C)로 송신한다(S13).
메시지 수신 절차를 나타낸 도 6의 (b)를 참조하면, 전술한 메시지 송신 절차에 따라, 채팅 서버(S)가 메시지 저장 공간에 패키지 데이터를 저장해놓은 상태에서, 클라이언트(C)가 자신이 가져올 패키지 데이터(메시지)가 있는지를 물어보고 요청하기 위하여 클라이언트(C)에 대응되는 식별정보인 수신자 정보를 포함하는 메시지 요청 데이터를 채팅 서버(S)로 송신한다(S21). 채팅 서버(S)는 메시지 요청 데이터를 수신하여 메시지 요청 데이터에 포함된 수신자 정보를 확인하여 확인된 수신지 정보가 수신자 리스트에 포함되어 있는 패키지 데이터가 메시지 저장 공간에 저장되어 있는지를 확인하여, 확인된 패키지 데이터를 메시지 저장 공간에서 추출하여(S22), 추출된 패키지 데이터를 메시지 응답 데이터로서 클라이언트(C)로 송신한다(S23).
도 7은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 데이터 포맷의 규칙을 설명하기 위한 도면이다.
도 7의 (a)을 참조하면, 클라이언트(C)가 채팅 서버(S)로 송신하는 메시지 전달 요청 데이터로서의 패키지 데이터는, 송신자 정보, 수신자 리스트, 메시지 타입 정보 등을 포함하는 메시지 헤더와, 사용자에 의해 실제로 입력된 메시지를 포함한다. 메시지 헤더에는 그룹 정보가 선택적으로 포함될 수 있다.
도 7의 (b)를 참조하면, 클라이언트(C)가 메시지 전달 요청 데이터에 대하여 채팅 서버(S)로부터 수신하는 메시지 전달 응답 데이터는, 메시지 전달 요청 데이터 수신 처리 결과에 대한 결과 코드 및 결과 정보 등을 포함할 수 있다.
도 7의 (c)를 참조하면, 클라이언트(C)가 채팅 서버(S)로 송신하는 메시지 요청 데이터는, 클라이언트(C)에 대응되는 식별정보로서의 수신자 정보 등을 포함한다.
도 7의 (d)를 참조하면, 클라이언트(C)가 메시지 요청 데이터에 대하여 채팅 서버(S)로부터 수신하는 메시지 응답 데이터는, 채팅 서버(S)가 메시지 전달 요청 데이터로서의 패키지 데이터를 수신하여 어떠한 가공 처리 없이 저장해둔 것으로서, 메시지 전달 요청 데이터로서의 패키지 데이터와 동일한 데이터 포맷을 갖는다.
도 8은 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하기 위한 프로토콜에 따른 메시지 타입 정보를 예시적으로 정의한 도면이다.
도 8을 참조하면, 메시지 헤더에 포함되는 메시지 타입 정보는, 메시지의 타입을 정의한 정보로서, 초대 메시지 타입 정보(M01), 실제로 채팅하는 내용에 관련된 일반 메시지 타입 정보(M02), 나가기 메시지 타입 정보(M03) 등을 포함할 수 있다. 이외에도, 초대 수락, 초대 거절 등 채팅에 필요한 각종 기능에 대한 메시지 타입 정보가 추가로 더 정의될 수도 있다.
이하에서는, 전술한 프로토콜을 이용하여 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 예를 도 9 내지 도 15를 참조하여 설명한다.
도 9는 클라이언트 기반의 채팅 서비스를 이루어지는 환경을 나타낸 도면이다. 이하에서는, 도 9에 도시된 바와 같이, 클라이언트 장치(100)로서 스마트폰을 소유한 3명의 사용자(사용자 1, 사용자 2, 사용자 3)가 채팅하는 상황을 가정한다. 그리고, 사용자 1은 최초로 채팅을 하고자 하는 사용자이다.
도 9에 도시된 바와 같이, 3대의 스마트폰은 와이파이(WiFi) 망, 이동통신망, 인터넷 망 등의 네트워크(120)를 통해 채팅 서버(S)와 연결되어 통신할 수 있다.
도 9에 도시된 바와 같이, 3명의 사용자가 각각 소유한 스마트폰에는 본 발명의 실시예에 따른 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시킬 수 있는 애플리케이션(프로그램)이 설치되어 있다. 그리고, 3대의 스마트폰에 각각 설치된 애플리케이션은 채팅 서버(S)와 연동하는 클라이언트로서 C1, C2, C3이라고도 한다.
도 9를 참조하면, 사용자 1이 채팅 서비스를 이용하기 위해 해당 애플리케이션을 실행시키면, 애플리케이션(C1)은 도 9에 도시된 바와 같이 채팅 화면을 디스플레이한다. 그리고, 사용자 2 및 사용자 3의 스마트폰에는 설치된 해당 애플리케이션이 백그라운드에서 실행되고 있을 수도 있다.
그리고, 애플리케이션(C1)은 사용자 초대 UI(User Interface)를 제공하는데, 사용자 1이 사용자 2 및 사용자 3과 채팅하기 위하여 상대방 찾기 버튼을 누르면 스마트폰에 저장된 연락처로부터 사용자 2 및 사용자 3의 전화번호(클라이언트 장치에 대응되는 식별정보의 일 예임)를 불러올 수 있으며, 이후 초대 버튼을 누르면 사용자 2 및 사용자 3을 초대할 수 있다.
이러한 채팅 상대방 초대 절차를 도 10 및 도 11을 참조하여 설명한다. 단, 이하 도면에서 데이터 필드 내에 기재된 U1, U2, U3는 사용자 1의 스마트폰(클라이언트 장치), 사용자 2의 스마트폰(클라이언트 장치), 사용자 3의 스마트폰(클라이언트 장치)에 각각 대응되는 식별정보이며, 이는 전화번호일 수도 있고, 전화번호에 대응되는 사용자 정보(예: ID, 별명 등) 등일 수도 있다.
전술한 바에 따라 사용자가 초대할 사용자를 설정하고 초대 버튼을 누르면, C1은 초대 기능을 수행한다. 이러한 초대 기능은 프로토콜에서 정의된 메시지 송신 절차(도 10)와 메시지 수신 절차(도 11)에 따라 실행된다.
도 10을 참조하면, C1은 U2 및 U3를 포함하는 수신자 리스트를 설정하고, U1을 송신자 정보로서 설정하며, 그룹 정보를 GO1로 설정하고, 메시지 타입 정보를 M01(초대 메시지 타입 정보)로 설정하고, 이렇게 설정된 송신자 정보, 수신자 리스트, 그룹 정보, 메시지 타입 정보를 포함하는 메시지 헤더와, "초대합니다" 등의 기본 내용이나 사용자에 의해 입력된 내용의 메시지(M)를 패키징하여 패키지 데이터(1000)를 생성하고, 생성된 패키지 데이터(1000)를 메시지 전달 요청 데이터로서 채팅 서버(S)로 송신한다.
도 10을 참조하면, 채팅 서버(S)는 C1으로부터 수신한 메시지 전달 요청 데이터로서의 패키지 데이터(1000)를 메시지 저장 공간에 저장한다. 이후, 채팅 서버(S)는 결과 코드(Result Code, RC)와 결과 정보(Result Information, RI)를 포함하는 메시지 전달 응답 데이터(1010)를 C1으로 송신한다.
전술한 바에 따라, 채팅 서버(S)의 메시지 저장 공간에 메시지 전달 요청 데이터인 패키지 데이터(1000)가 저장된 이후, 메시지 전달 요청 데이터인 패키지 데이터(1000)에서의 수신자 리스트에 설정된 U2 및 U3 각각에 대응되는 C2 및 C3가 메시지 전달 요청 데이터인 패키지 데이터(1000)를 수신하는 메시지 수신 절차는 도 11을 참조하여 설명한다.
도 11을 참조하면, C2는 C2에 대응되는 식별정보인 U2를 수신자 정보로 설정하고 이러한 수신자 정보를 포함하는 메시지 요청 데이터(1110)를 채팅 서버(S)로 송신한다. 이에 따라, 채팅 서버(S)는 메시지 저장 공간에 저장된 패키지 데이터(1000)에 패키징된 메시지 헤더에 포함된 수신자 리스트에 메시지 요청 데이터(1110)에 포함된 수신자 정보인 U2가 포함되어 있는지를 확인하여, 포함되어 있다면, 메시지 저장 공간에 저장된 패키지 데이터(1000)를 메시지 응답 데이터로서 C2로 송신한다. 이러한 방식에 따라 C2는 채팅 서버(S)에 저장된 패키지 데이터(1000)를 메시지 응답 데이터로서 수신할 수 있다.
이와 동일한 방식으로, C3도 C3에 대응되는 식별정보인 U3을 수신자 정보로 설정하고 이러한 수신자 정보를 포함하는 메시지 요청 데이터(1120)를 채팅 서버(S)로 송신하여 채팅 서버(S)에 저장된 패키지 데이터(1000)를 메시지 응답 데이터로서 수신할 수 있다.
도 11의 절차에 따라 패키지 데이터(1000)를 수신한 C2 및 C3는, 패키지 데이터(1000)에 패키징된 메시지의 내용(초대 내용)을 팝업 형태나 채팅 화면을 띄어서 표시하고, 사용자는 이러한 초대 사실을 확인할 수 있다. 이때, C2 및 C3는 초대 승낙 또는 초대 거절을 위한 사용자 인터페이스를 제공할 수도 있다.
이러한 절차에 따라, 사용자 1, 사용자 2 및 사용자 3은 채팅할 수 있는 상태가 된다. 이후, 실제로 채팅이 진행되면서, 실질적인 채팅 내용의 메시지(일반 메시지 타입의 메시지)가 C1, C2 및 C3 간에 전달되는 기능에 대하여 도 12 및 도 13을 참조하여 설명한다. 이러한 메시지 전달 기능도 프로토콜에서 정의된 메시지 송신 절차(도 12)와 메시지 수신 절차(도 13)에 따라 실행된다.
도 12를 참조하면, 사용자 1, 사용자 2 및 사용자 3이 채팅을 하던 중, 사용자 2가 메시지(일반 메시지)를 입력하면, C2는 송신자 정보를 U2로 설정하고 U1 및U3를 포함하는 수신자 리스트를 설정하며 그룹 정보를 G01로 설정하고 메시지 타입 정보를 MO2(일반 메시지 타입 정보)로 설정하여 메시지 헤더를 만들어 입력된 메시지와 패키징하여 패키징 데이터(1200)를 생성한다.
도 12를 참조하면, 이후, C2는 생성된 패키징 데이터(1200)를 메시지 전달 요청 데이터로서 채팅 서버(S)로 송신한다. 이에 따라, 채팅 서버(S)는 패키징 데이터(1200)를 메시지 저장 공간에 저장하고, 결과 코드(RC) 및 결과 정보(RI)를 포함하는 메시지 전달 응답 데이터(1210)를 C2로 송신한다.
도 13을 참조하면, 패키지 데이터(1200)가 채팅 서버(S)의 메시지 저장 공간에 저장된 상태에서, 채팅 참여자 중에서 패키지 데이터(1200)를 생성한 클라이언트인 C2이외의 다른 클라이언트인 C1 및 C3는 자신이 가져올 패키지 데이터가 있는지를 확인하여 가져오기 위하여 메시지 요청 데이터(1310, 1320)를 채팅 서버(S)로 송신한다.
이때, C1은 C1에 대응되는 식별정보인 U1이 수신자 정보로 설정된 메시지 요청 데이터(1310)를 채팅 서버(S)로 송신하고, C3는 C3에 대응되는 식별정보인 U3이 수신자 정보로 설정된 메시지 요청 데이터(1320)를 채팅 서버(S)로 송신한다.
채팅 서버(S)는 C1으로부터 수신한 메시지 요청 데이터(1310)에 포함된 수신자 정보를 U1으로 확인하여 U1이 수신자 리스트에 포함된 패키지 데이터(1200)를 추출하여 C1으로 송신한다.
또한, 채팅 서버(S)는 C3으로부터 수신한 메시지 요청 데이터(1320)에 포함된 수신자 정보를 U3으로 확인하여 U3이 수신자 리스트에 포함된 패키지 데이터(1200)를 추출하여 C3으로 송신한다.
C1 및 C3는 수신한 패키지 데이터(1200)에 패키징된 메시지 헤더에 포함된 메시지 타입 정보가 일반 메시지 타입 정보(M02)인 것을 확인하고, 패키지 데이터(1200)에 패키징된 메시지를 채팅 화면에 출력한다.
이와 같이, 메시지 전송 절차 및 메시지 수신 절차를 통해 C1, C2, C3 간에 메시지가 전달됨으로써 채팅이 이루어질 수 있으며, 채팅이 이루어지고 있는 동안, 참여자 중에 어느 사용자가 채팅을 중단할 수도 있다.
이러한 나가기 기능을 제공하기 위하여, 애플리케이션은 나가기 기능을 제공하기 위한 나가기 버튼 등과 같은 사용자 인터페이스를 제공할 수 있다. 이하, 도 14 및 도 15를 참조하여 나가기 기능과 관련된 메시지 전달 절차(메시지 전송 및 메시지 수신 절차)에 대하여 설명한다.
도 14를 참조하면, 사용자 3이 채팅을 그만 하고자 나가기 버튼을 눌러서 채팅을 중단하게 되면, C3은 송신자 정보를 U3으로 설정하고 수신자 리스트에 U1, U2를 포함시켜 설정하며, 메시지 타입 정보를 나가기 메시지 타입 정보인 M03으로 설정하여 메시지 헤더를 구성하고, 구성된 메시지 헤더와 "사용자 3은 채팅방에서 나갑니다" 등의 내용을 갖는 메시지를 패키징하여 패키징 데이터(1400)를 생성한다.
이후, C3는 생성된 패키징 데이터(1400)를 메시지 전달 요청 데이터로서 채팅 서버(S)로 송신한다. 이에 따라, 채팅 서버(S)는 메시지 저장 공간에 패키지 데이터(1400)를 저장해둔다.
도 15를 참조하면, 패키지 데이터(1400)가 채팅 서버(S)의 메시지 저장 공간에 저장된 상태에서, 채팅 참여자 중에서 패키지 데이터(1400)를 생성한 클라이언트인 C3이외의 다른 클라이언트인 C1 및 C2는 자신이 가져올 패키지 데이터가 있는지를 확인하여 가져오기 위하여 메시지 요청 데이터(1510, 1520)를 채팅 서버(S)로 송신한다.
이때, C1은 C1에 대응되는 식별정보인 U1이 수신자 정보로 설정된 메시지 요청 데이터(1510)를 채팅 서버(S)로 송신하고, C2는 C2에 대응되는 식별정보인 U2이 수신자 정보로 설정된 메시지 요청 데이터(1520)를 채팅 서버(S)로 송신한다.
채팅 서버(S)는 C1으로부터 수신한 메시지 요청 데이터(1510)에 포함된 수신자 정보를 U1으로 확인하여 U1이 수신자 리스트에 포함된 패키지 데이터(1400)를 추출하여 C1으로 송신한다.
또한, 채팅 서버(S)는 C2로부터 수신한 메시지 요청 데이터(1520)에 포함된 수신자 정보를 U2로 확인하여 U2가 수신자 리스트에 포함된 패키지 데이터(1400)를 추출하여 C2로 송신한다.
C1 및 C2는 수신한 패키지 데이터(1400)에 패키징된 메시지 헤더에 포함된 메시지 타입 정보가 나가기 메시지 타입 정보(M03)인 것을 확인하고, 패키지 데이터(1400)에 패키징된 메시지를 채팅 화면에 출력한다. 이에 따라, 사용자 1 및 사용자 2는 사용자 3이 채팅방을 나간 것을 확인할 수 있다.
사용자 3이 나가기 전에는 3명의 사용자가 그룹 채팅을 하였고, 사용자 3이 나가고 난 이후에는 2명의 사용자가 1-1 채팅을 할 수 있다. 그룹 채팅일 때와 1-1 채팅일 때의 클라이언트(C)와 채팅 서버(S)가 수행해야 하는 동작에는 전혀 차이가 없다. 1-1 채팅에서는 그룹 정보가 미설정되고 수신자 리스트에 하나의 식별정보만이 설정된다는 점만 다를 뿐이다.
이상에서 설명한 바와 같이 본 발명에 의하면, 모바일 환경에 적합한 클라이언트 기반의 채팅 서비스를 제공할 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은 2011년 05월 20일 한국에 출원한 특허출원번호 제 10-2011-0047903 호에 대해 미국 특허법 119(a)조(35 U.S.C § 119(a))에 따라 우선권을 주장하며, 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다. 아울러, 본 특허출원은 미국 이외에 국가에 대해서도 위와 동일한 이유로 우선권을 주장하면 그 모든 내용은 참고문헌으로 본 특허출원에 병합된다.

Claims (13)

  1. 제1클라이언트 장치에 대응되는 식별정보인 송신자 정보, 하나 이상의 제2클라이언트 장치에 각각 대응되는 식별정보를 포함하는 수신자 리스트 및 메시지 타입 정보를 포함하는 메시지 헤더와 상기 제1클라이언트 장치에서 입력된 메시지가 패키징된 패키지 데이터를 상기 제1클라이언트 장치로부터 수신하는 메시지 수신부;
    상기 패키지 데이터를 저장하는 메시지 저장부; 및
    상기 수신자 리스트를 참조하여 상기 저장된 패키지 데이터를 상기 하나 이상의 제2클라이언트 장치로 송신하는 메시지 송신부를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버.
  2. 제1항에 있어서,
    상기 메시지 송신부는,
    상기 제2클라이언트 장치로부터 메시지 요청 데이터가 수신되면, 상기 제2클라이언트 장치에 대응되는 식별정보가 상기 수신자 리스트에 포함되어 있는지를 확인하여, 포함되어 있는 것으로 확인되면, 상기 제2클라이언트 장치로 상기 저장된 패키지 데이터를 송신하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버.
  3. 제1항에 있어서,
    상기 메시지 송신부는,
    상기 패키지 데이터가 저장되면 상기 수신자 리스트를 확인하여, 해당 제2클라이언트 장치로 상기 저장된 패키지 데이터를 송신하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 채팅 서버.
  4. 클라이언트 장치가 클라이언트 기반의 채팅 서비스를 제공하는 방법에 있어서,
    입력된 제1메시지를 채팅 화면에 출력하는 단계;
    상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 단계;
    상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 단계;
    제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 단계; 및
    상기 제2메시지를 상기 채팅 화면에 출력하는 단계를 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  5. 제4항에 있어서,
    상기 제1송신자 정보는 상기 클라이언트 장치에 대응되는 식별정보이고, 상기 제1수신자 리스트는 하나 이상의 다른 클라이언트 장치에 각각 대응되는 식별정보를 포함하며,
    상기 제2송신자 정보는 상기 하나 이상의 다른 클라이언트 장치 중 특정 다른 클라이언트 장치에 대응되는 식별정보이고, 상기 제2수신자 리스트는 상기 클라이언트 장치에 대응되는 식별정보를 포함하되,
    상기 식별정보는 전화번호 또는 상기 전화번호와 대응되는 사용자 정보인 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  6. 제4항에 있어서,
    상기 생성하는 단계에서,
    사용자 입력 또는 채팅 참여자 리스트를 토대로 하나 이상의 다른 클라이언트 장치에 각각 대응되는 식별정보를 포함하는 상기 제1수신자 리스트를 설정하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  7. 제6항에 있어서,
    상기 제2패키지 데이터를 수신한 이후에, 상기 제2메시지 타입 정보가 초대 메시지 타입 정보인 경우, 상기 제2수신자 리스트를 토대로 상기 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에 새로운 클라이언트 장치에 대응되는 식별정보를 추가하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  8. 제6항에 있어서,
    상기 제2패키지 데이터를 수신한 이후에, 상기 제2메시지 타입 정보가 나가기 메시지 타입 정보인 경우, 상기 제2송신자 정보인 특정 다른 클라이언트 장치에 대응되는 식별정보를 상기 제2패키지 데이터가 수신되기 이전에 관리되고 있던 채팅 참여자 리스트에서 삭제하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  9. 제4항에 있어서,
    상기 제1메시지 타입 정보 및 상기 제2메시지 타입 정보 각각은,
    초대 메시지 타입 정보, 일반 메시지 타입 정보 및 나가기 메시지 타입 정보 중 하나인 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  10. 제4항에 있어서,
    상기 수신하는 단계는,
    상기 채팅 서버로부터 가져올 상기 제2패키지 데이터가 있는지를 확인하기 위하여, 상기 클라이언트 장치에 대응되는 식별정보를 포함하는 메시지 요청 데이터를 상기 채팅 서버로 송신하여 상기 제2패키지 데이터를 상기 채팅 서버로부터 수신하고, 상기 제2패키지 데이터에서의 상기 제2수신자 리스트에는 상기 클라이언트 장치에 대응되는 식별정보가 포함된 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  11. 제4항에 있어서,
    상기 클라이언트 장치는,
    애플리케이션 스토어 서버를 통해 설치된 애플리케이션을 실행시켜 클라이언트 기반의 채팅 서비스를 제공하는 모바일 단말기인 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  12. 제4항에 있어서,
    상기 제1메시지 헤더 및 상기 제2메시지 헤더 각각은,
    같이 채팅을 하고 있는 사용자의 그룹 또는 메시지 전달 범위에 있는 사용자의 그룹을 의미하는 채팅 그룹을 식별하기 위한 그룹 정보를 더 포함하는 것을 특징으로 하는 클라이언트 기반의 채팅 서비스를 제공하는 방법.
  13. 클라이언트 기반의 채팅 서비스를 제공하는 방법을 실행시키기 위한 프로그램을 기록한 기록매체에 있어서,
    입력된 제1메시지를 채팅 화면에 출력하는 기능과,
    상기 제1메시지가 입력되면, 제1송신자 정보, 제1수신자 리스트 및 제1메시지 타입 정보를 포함하는 제1메시지 헤더와 상기 입력된 제1메시지를 패키징하여 제1패키지 데이터를 생성하는 기능과,
    상기 생성된 제1패키지 데이터를 채팅 서버로 송신하는 기능과,
    제2송신자 정보, 제2수신자 리스트 및 제2메시지 타입 정보를 포함하는 제2메시지 헤더와 제2메시지가 패키징된 제2패키지 데이터를 상기 채팅 서버로부터 수신하는 기능과,
    상기 제2메시지를 상기 채팅 화면에 출력하는 기능을 구현하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2012/003655 2011-05-20 2012-05-10 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체 Ceased WO2012161437A2 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0047903 2011-05-20
KR1020110047903A KR101292002B1 (ko) 2011-05-20 2011-05-20 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체

Publications (2)

Publication Number Publication Date
WO2012161437A2 true WO2012161437A2 (ko) 2012-11-29
WO2012161437A3 WO2012161437A3 (ko) 2013-01-17

Family

ID=47217844

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/003655 Ceased WO2012161437A2 (ko) 2011-05-20 2012-05-10 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체

Country Status (2)

Country Link
KR (1) KR101292002B1 (ko)
WO (1) WO2012161437A2 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7650380B2 (en) 2004-02-12 2010-01-19 International Business Machines Corporation System and method for messaging and collaborating in an intranet environment
FI20050092A0 (fi) * 2004-09-08 2005-01-28 Nokia Corp Ryhmäpalveluiden ryhmätiedot
US20090063638A1 (en) * 2007-08-29 2009-03-05 Lei Guo Method and Apparatus for Processing Messages in Messaging System
KR101397633B1 (ko) * 2007-12-05 2014-05-22 주식회사 케이티 아이엠에스 기반 인스턴트 메시지 서비스 제공 시스템 및방법

Also Published As

Publication number Publication date
WO2012161437A3 (ko) 2013-01-17
KR20120129564A (ko) 2012-11-28
KR101292002B1 (ko) 2013-08-01

Similar Documents

Publication Publication Date Title
EP2499848A2 (en) Method and apparatus for providing remote user interface services
WO2016137092A2 (ko) 메신저 서비스에서의 그룹 아이콘 구성 방법 및 이를 위한 장치
WO2016047983A1 (ko) 통신 단말들간 무선 통신을 위한 방법 및 장치
WO2012026777A2 (en) Method and apparatus for establishing communication
WO2014112754A1 (ko) 웹 서비스 푸시 방법 및 이를 수행하는 웹 서비스 푸시 서버 및 웹 서비스 제공 서버
WO2016076472A1 (ko) 통화 제어 방법 및 시스템
WO2010047470A2 (ko) 근거리 무선 통신망을 통해 데이터 서비스를 제공하기 위한 콘텐츠 제공 시스템 및 방법과 이를 위한 cpns 서버와 이동통신 단말기
WO2012099402A2 (en) Method and apparatus for phone communication using home network
WO2014088146A1 (ko) Sns를 이용한 사물통신 시스템, 방법 및 그 사물통신 서버
WO2013023529A1 (zh) 一种移动终端处理联系信息的方法及移动终端
WO2014112838A1 (ko) 전화번호 연동기반 전자명함 전송관리 시스템 및 그 방법
WO2012148094A2 (ko) 수신인 불특정 메시지 교환 서비스 제공 방법
WO2017034097A1 (ko) 소셜 네트워크 서비스 방법 및 시스템
EP2932651A1 (en) Method and apparatus for cloud based power management of local network devices
WO2012081950A2 (ko) 복수의 클라이언트 간의 어플리케이션 자동 공유 방법 및 장치
WO2024128400A1 (ko) 전자 장치 및 그의 메시지 제공 방법
WO2013022259A2 (en) Method and apparatus for utilizing callee information and location before call establishment
WO2014104579A1 (en) Method for controlling file name and electronic device thereof
WO2022186466A1 (ko) 수신자 지인의 번호가 표시되도록 선거 운동 메시지를 발송하는 장치, 방법 및 프로그램
WO2012161437A2 (ko) 클라이언트 기반의 채팅 서비스를 제공하는 방법, 클라이언트 장치, 채팅 서버, 시스템 및 기록매체
WO2014012522A1 (zh) 通信方式的关联方法及装置
WO2016060321A1 (ko) 보안 통화 연결 방법 및 장치
WO2018216857A1 (ko) 대화 검색 방법, 대화 검색이 가능한 휴대형 단말 및 대화 관리 서버
WO2014204259A1 (ko) 공지 메시지 전송 방법 및 서버, 단체 채팅 메시지 관리 방법
WO2015174644A1 (ko) 무선 공유기를 통해 사용자 단말에 광고를 제공하는 시스템 및 광고 서비스 제공 서버

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12789181

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC DATED 10.03.14 (FORM 1205A)

122 Ep: pct application non-entry in european phase

Ref document number: 12789181

Country of ref document: EP

Kind code of ref document: A2