Skip to content

Automatically exported from code.google.com/p/phpwebsocket

Notifications You must be signed in to change notification settings

s7dhansh/phpwebsocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

phpwebsocket

Automatically exported from http://code.google.com/p/phpwebsocket

I don't take any credit for the code.

PHP and WebSockets

Changelog

010.02.16 - Added basic demo and chatbot

010.02.16 - Added users list to keep track of handshakes

010.02.16 - Organized everything in a reusable websocket class

010.02.16 - Minor cosmetic changes

Client side

var host = "ws://localhost:12345/websocket/server.php";
try{
  socket = new WebSocket(host);
  log('WebSocket - status '+socket.readyState);
  socket.onopen    = function(msg){ log("Welcome - status "+this.readyState); };
  socket.onmessage = function(msg){ log("Received: "+msg.data); };
  socket.onclose   = function(msg){ log("Disconnected - status "+this.readyState); };
}
catch(ex){ log(ex); }

Server side

log("Handshaking...");
list($resource,$host,$origin) = getheaders($buffer);
$upgrade = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" .
           "Upgrade: WebSocket\r\n" .
           "Connection: Upgrade\r\n" .
           "WebSocket-Origin: " . $origin . "\r\n" .
           "WebSocket-Location: ws://" . $host . $resource . "\r\n" .
           "\r\n";
$handshake = true;
socket_write($socket,$upgrade.chr(0),strlen($upgrade.chr(0)));

Steps to run the test:

Save both files, client.php and server.php, in a folder in your local server running Apache and PHP.

From the command line, run the server.php program to listen for socket connections.

Open Google Chrome (dev build) and point to the client.php page

Done, your browser now has a full-duplex channel with the server.

Start sending commands to the server to get some responses.

About

Automatically exported from code.google.com/p/phpwebsocket

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published