โค้ด PHP Web Socket
Moderators: mindphp, ผู้ดูแลกระดาน
-
- PHP Super Member
- Posts: 480
- Joined: 25/01/2010 11:57 pm
- Contact:
Re: โค้ด PHP Web Socket
จากที่ทดลองใช้ในเครื่องได้แต่พอขึ้น server แล้วเปลี่ยน url จะใช้งานไม่ได้กำลังหาวิธีแก้อยู่ครับ
-
- PHP Super Member
- Posts: 480
- Joined: 25/01/2010 11:57 pm
- Contact:
Re: โค้ด PHP Web Socket
ขอขั้นตอนการใช้งานด้วยครับเปิดดูแล้วยังงงว่าเอาไปใช้งานยังไงmindphp wrote:ผมลอง ถ้าใช้ server เป็น สองตัวนี้ได้ไม่มีปัญหา เลยครับ
http://www.websocket.org
http://kaazing.com/products/kaazing-websocket-gateway
แต่ทางฝั่ง server ไม่ใช่ php นะครับ เป็น java
- mindphp
- ผู้ดูแลระบบ MindPHP
- Posts: 22507
- Joined: 22/09/2008 6:18 pm
- Contact:
Re: โค้ด PHP Web Socket
โหลดตัว server มาลงในเครื่องครับ
ส่วนฝั่ง Client เหมือนกับที่ทำไว้ ครับ
หรือดูจาก demo ก็ได้ครับ
ส่วนฝั่ง Client เหมือนกับที่ทำไว้ ครับ
หรือดูจาก demo ก็ได้ครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
-
- PHP Newbie
- Posts: 3
- Joined: 27/04/2012 12:25 pm
Re: โค้ด PHP Web Socket
ถ้าจากโค๊ดนี้
<?php
$host = "192.168.1.40";
$port = 1234;
// don't timeout!
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, 0)
or die("Could not create socket\n");
$socket = socket_create(AF_INET, SOCK_DGRAM, 0)
or die("Could not create socket\n");
$result = socket_bind($socket, $host, $port)
or die("Could not bind to socket\n");
$result = socket_listen($socket, 3)
or die("Could not set up socket listener\n");
$spawn = socket_accept($socket)
or die("Could not accept incoming connection\n");
$input = socket_read($spawn, 1024) or die("Could not read input\n");
$output = strrev($input) . "\n";
socket_write($spawn, $output, strlen ($output))
or die("Could not write output\n");
socket_close($spawn);
socket_close($socket);
?>
แต่ว่ารันผ่าน firefox แล้ว
http://localhost/webpage/testsocket.php
ฟ้องว่า
Warning: socket_listen() [function.socket-listen]: unable to listen on socket [0]: The attempted operation is not supported for the type of object referenced. in C:\AppServ\www\webPage\testsocket.php on line 17
Could not set up socket listener
* จุดประสงค์ของเราคือ ต้องการเขียน php เป็นฟังก์ชันเปิดพอร์ตไว้ รอการตอบรับจากคอมอีกเครื่องนึง
และตัว php จะถูกรันเมื่อกดปุ๋ม ผ่านทางเว็บที่เขียนโดย HTML อะ
ปล. เค้าคิดว่า เค้าอาจจะเช้าใจตรง host ผิดแน่ๆเลย หรือต้องติดตั้งอะไรผิด ยังไงแนะนำหน่อยคะ
<?php
$host = "192.168.1.40";
$port = 1234;
// don't timeout!
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, 0)
or die("Could not create socket\n");
$socket = socket_create(AF_INET, SOCK_DGRAM, 0)
or die("Could not create socket\n");
$result = socket_bind($socket, $host, $port)
or die("Could not bind to socket\n");
$result = socket_listen($socket, 3)
or die("Could not set up socket listener\n");
$spawn = socket_accept($socket)
or die("Could not accept incoming connection\n");
$input = socket_read($spawn, 1024) or die("Could not read input\n");
$output = strrev($input) . "\n";
socket_write($spawn, $output, strlen ($output))
or die("Could not write output\n");
socket_close($spawn);
socket_close($socket);
?>
แต่ว่ารันผ่าน firefox แล้ว
http://localhost/webpage/testsocket.php
ฟ้องว่า

Warning: socket_listen() [function.socket-listen]: unable to listen on socket [0]: The attempted operation is not supported for the type of object referenced. in C:\AppServ\www\webPage\testsocket.php on line 17
Could not set up socket listener
* จุดประสงค์ของเราคือ ต้องการเขียน php เป็นฟังก์ชันเปิดพอร์ตไว้ รอการตอบรับจากคอมอีกเครื่องนึง
และตัว php จะถูกรันเมื่อกดปุ๋ม ผ่านทางเว็บที่เขียนโดย HTML อะ
ปล. เค้าคิดว่า เค้าอาจจะเช้าใจตรง host ผิดแน่ๆเลย หรือต้องติดตั้งอะไรผิด ยังไงแนะนำหน่อยคะ

- mindphp
- ผู้ดูแลระบบ MindPHP
- Posts: 22507
- Joined: 22/09/2008 6:18 pm
- Contact:
Re: โค้ด PHP Web Socket
ลองเปลี่ยน IP ดูครับ
ถ้าไม่ได้ AF_INET ลองเปลี่ยน AF_INET6
ถ้าไม่ได้ AF_INET ลองเปลี่ยน AF_INET6
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
-
- PHP Newbie
- Posts: 3
- Joined: 27/04/2012 12:25 pm
Re: โค้ด PHP Web Socket
mindphp wrote:ลองเปลี่ยน IP ดูครับ
ถ้าไม่ได้ AF_INET ลองเปลี่ยน AF_INET6
IP หมายถึง IP เครื่องเราปะ ? หรือยังไงอะ เรา งง ตรง IP เสียเหลือเกิ๊น

-
- PHP Super Member
- Posts: 480
- Joined: 25/01/2010 11:57 pm
- Contact:
Re: โค้ด PHP Web Socket
ผมทดลองกับ Shared Hosting ไม่ได้ โดยเฉพาะ java ไม่ได้ติดตั้งไว้ แต่ว่าทดสอบในเครื่องตัวเองได้
ส่วนโค้ดที่ให้ไปก็สามารถใช้ในเครื่องตัวเองได้ พอลง host ก็ใช้ไม่ได้เหมือนกัน
ส่วนโค้ดที่ให้ไปก็สามารถใช้ในเครื่องตัวเองได้ พอลง host ก็ใช้ไม่ได้เหมือนกัน
-
- PHP Super Member
- Posts: 480
- Joined: 25/01/2010 11:57 pm
- Contact:
Re: โค้ด PHP Web Socket
ทางเลือกใหม่อีกทางครับ ใช้ nodejs กับ socket.io เป็นโค้ด javascript ทั้งทางฝั่ง Server และ Client
ไม่สามารถใช้ได้กับ Shared Hosting เพราะ Hosting ส่วนมากไม่อนุญาติให้เราเข้าไปติดตั้งโปรแกรมเพิ่ม
สามารถเข้าไปอ่านและ Download มาติดตั้งได้ที่ http://nodejs.org/
สำหรับ socket.io เข้าไปดูวิธีติดตั้งและการใช้งานได้ที่ http://socket.io/#how-to-use
วิธีติดตั้ง สำหรับ Server Linux (ผมลองกับ Centos)
ไม่สามารถใช้ได้กับ Shared Hosting เพราะ Hosting ส่วนมากไม่อนุญาติให้เราเข้าไปติดตั้งโปรแกรมเพิ่ม
สามารถเข้าไปอ่านและ Download มาติดตั้งได้ที่ http://nodejs.org/
สำหรับ socket.io เข้าไปดูวิธีติดตั้งและการใช้งานได้ที่ http://socket.io/#how-to-use
วิธีติดตั้ง สำหรับ Server Linux (ผมลองกับ Centos)
1. Login by root
2. เปิด Teminal พิมพ์คำสั่ง ตามขั้นตอนดังต่อไปนี้
$ wget http://patches.fedorapeople.org/oldnode ... noarch.rpm
$ yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
3. เปิดไฟล์ /etc/yum.repos.d/nodejs-stable.repo.
4. ที่ [nodejs-stable] ให้คอมเม้นท์ mirrorlist และเปิด baseurl: และแก้ url ดังนี้
baseurl=http://patches.fedorapeople.org/oldnode ... $basearch/
5. [nodejs-stable-source] ให้คอมเม้นท์ mirrorlist และเปิด baseurl: และแก้ url ดังนี้
baseurl=http://patches.fedorapeople.org/oldnode ... ver/SRPMS/
6. บันทึก
7. พิมพ์คำสั่ง เพื่อ install ดังนี้
yum install nodejs-compat-symlinks npm
การเรียกใช้งานที่ฝั่ง Server
node server.js
Credit: http://www.itouleg.com
Users browsing this forum: No registered users and 2 guests