hi,
I am trying to create a chat room in PHP.. I tried an open source PHP121 chat that uses AJAX. I could understand the working but, the thing that I disliked was the use of database to store messages between users.. I think, it would not be a good practice to access db for each message that is forwarded to the users chatting.. (it may create too many db connections and many transactions simultaneously when the more than 100 users chatting at same time.. I dont know, if my concept it clear .. plz elaborate, if I am wrong)..
Now, the next step I tried was to use XML to store and retrieve messages but this time, I was not able to find the DOM API.. (if anybody knows, plz help me).
My next step was to use simple text file to store messages but then I stumble upon the problem of multiple users accessing (read/write) 1 file at the same time..
I am still not sure, which is the best method to incorporate a chat system (1 to 1 chat only) in PHP..
Should I use Socket programming in PHP ?
I found this article recently posted here "http://www.devshed.com/c/a/PHP/An-Intro ... ts-in-PHP/".
Any help would be greatly appreciated..
thanks
Chat system in PHP
Moderator: General Moderators
Re: Chat system in PHP
Isn't that what databases have been built for?varun8211 wrote: I think, it would not be a good practice to access db for each message that is forwarded to the users chatting.. (it may create too many db connections and many transactions simultaneously when the more than 100 users chatting at same time..
Have you already tried to do access (and modify) an XML file with a couple of concurrent users? I'm pretty sure you don't want to roll your own transaction mechanism either...varun8211 wrote: Now, the next step I tried was to use XML to store and retrieve messages but this time, I was not able to find the DOM API.. (if anybody knows, plz help me).
It seems you've already experienced that transactions, or concurrent access can be a PITA. And yes, that's exactly what most DBMS have been built for..varun8211 wrote: My next step was to use simple text file to store messages but then I stumble upon the problem of multiple users accessing (read/write) 1 file at the same time..
How would it solve your problem?varun8211 wrote: Should I use Socket programming in PHP ?
If i get it right, you currently have many users, that can send messages to other users (currently to only one other user).
Basically, you have a table users (user_id, username, password, bio, ...)
And you have a table for messages (sender_id, recipient_id, messagebody, sendtime)
Now it's pretty simple: When a users sends a message, simply INSERT INTO the messages tables...
When a users requests message: SELECT from messages and DELETE where message_id IN (SELECT from messages)