- Login
- Register
- Private Chat
- Real time
- Store chats in database
- Responsive Ui
This project is build with php websockets and angular js for realtime chat with feature given above section.
WebSockets is a bi-directional, full-duplex, persistent connection from a web browser to a server. Once a WebSocket connection is established the connection stays open until the client or server decides to close this connection. With this open connection, the client or server can send a message at any given time to the other. This makes web programming entirely event driven, not (just) user initiated. It is stateful. As well, at this time, a single running server application is aware of all connections, allowing you to communicate with any number of open connections at any given time.
- Clone the repository from Github using —
git clone https://github.com/harendra21/Realtime-One-To-One-Chat.git
- Place the cloned folder to your local server.
- Now open cmd in this in the cloned directory and run — “composer install”
- Import Database and change the configuration in
config.php
file according to your database. - Change
base_url
inpublic/script/app.js
according to your project location. - Then change directory to bin folder by — “cd bin”
- Stat-server by — “php chat-server.php”
- Now hit public folder of the project by your browser — “localhost/path_to_your_folder/public”
- Enjoy!
CREATE TABLE `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`from_id` int(11) NOT NULL,
`to_id` int(11) NOT NULL,
`type` varchar(255) NOT NULL,
`value` text NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=latin1;
CREATE TABLE `socket_id` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL,
`socket_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=121 DEFAULT CHARSET=latin1;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firstname` varchar(255) NOT NULL,
`lastname` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`profile_image` varchar(255) DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
http://localhost/chat/public/#!/register
http://localhost/chat/public/#!/login