EN::12-Examples::005-PHP chat example
Header: PHP chat example
====== PHP chat example ======
An example of using the [[https://github.com/CppComet/comet-server|CppComet]] server to create a chat.
* [[https://jsfiddle.net/Levhav/o35kvmn2/17/|jsfiddle.net online demo]]
* [[https://github.com/CppComet/php-chat-example|Github repo]]
{{ :en:comet:chat.gif |chat demo}}
====== Scheme of chat ======
Typical scheme of chat:
{{ :en:comet:scheme-of-chat.jpg |Typical scheme of chat}}
* Connecting to the comet server by websockets
* Send ajax message for add new massage to chat
* Send message to CppComet
* CppComet send messages for all subscribers in pipe
* Add message to database (optional)
====== Step 1. Connecting to the comet server ======
[[https://github.com/CppComet/comet-server|CppComet]] has cloud saas alternative that can be used for testing and demo access. In the following examples I will use demonstration access from https://comet-server.com for those who could not or were too lazy to [[https://github.com/CppComet/comet-server#building-from-source|deploy the server on their VPS]]
Login: 15
Password:lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8
Host: app.comet-server.ru
To connect to the comet server from the JavaScript API, use the following command:
cometApi.start({node:"app.comet-server.ru", dev_id:15})
* in parameter node - set hostname of your own server
* parameter dev_id - use only if you use saas service comet-server.com
====== Step 2. Send message to server ======
* Send ajax query to php back-end
* Send CometQL query for comet server
[[https://github.com/CppComet/php-chat-example/blob/master/chat.php|code of php back-end]]
Connection code to CppComet using MySQL protocol:
$host = "app.comet-server.ru";
$user = "15";
$password = "lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8";
$comet = mysqli_connect($host, $user, $password, "CometQL_v1");
The code for sending a message to the pipe "simplechat" and event 'newMessage':
$query = "INSERT INTO pipes_messages (name, event, message)VALUES('simplechat', 'newMessage', '".$msg."')";
mysqli_query($comet, $query);
====== Step 3. Receive message from comet server ======
Subscription code to the pipe on comet server. This callback will be called when somebody sends message into channel `simplechat`
cometApi.subscription("simplechat.newMessage", function(event){
$("#web_chat").append(''+HtmlEncode(event.data.name)+'')
$("#web_chat").append(''+HtmlEncode(event.data.text)+'
')
$("#web_chat").append('
')
})
====== Full chat code ======
====== Links ======
* [[en:comet:javascript_api|JavaScript API]]
* [[en:comet:cometql|CometQL API]]
* [[https://jsfiddle.net/o35kvmn2/5/|Online demo]]
* [[https://github.com/CppComet/comet-server|CppComet]]
* [[https://www.codeproject.com/script/Articles/ArticleVersion.aspx?waid=235463&aid=1181698|Creating a simple chat using CppComet]]