โค้ด PHP Web Socket

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: โค้ด PHP Web Socket

Re: โค้ด PHP Web Socket

โดย touleg » 04/04/2013 1:47 pm

ทางเลือกใหม่อีกทางครับ ใช้ nodejs กับ socket.io เป็นโค้ด javascript ทั้งทางฝั่ง Server และ Client

ไม่สามารถใช้ได้กับ 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

Re: โค้ด PHP Web Socket

โดย touleg » 27/04/2012 11:38 pm

ผมทดลองกับ Shared Hosting ไม่ได้ โดยเฉพาะ java ไม่ได้ติดตั้งไว้ แต่ว่าทดสอบในเครื่องตัวเองได้

ส่วนโค้ดที่ให้ไปก็สามารถใช้ในเครื่องตัวเองได้ พอลง host ก็ใช้ไม่ได้เหมือนกัน

Re: โค้ด PHP Web Socket

โดย ultradoi » 27/04/2012 9:13 pm

mindphp เขียน:ลองเปลี่ยน IP ดูครับ
ถ้าไม่ได้ AF_INET ลองเปลี่ยน AF_INET6

IP หมายถึง IP เครื่องเราปะ ? หรือยังไงอะ เรา งง ตรง IP เสียเหลือเกิ๊น :cry:

Re: โค้ด PHP Web Socket

โดย mindphp » 27/04/2012 8:43 pm

ลองเปลี่ยน IP ดูครับ
ถ้าไม่ได้ AF_INET ลองเปลี่ยน AF_INET6

Re: โค้ด PHP Web Socket

โดย ultradoi » 27/04/2012 8:31 pm

ถ้าจากโค๊ดนี้

<?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 ผิดแน่ๆเลย หรือต้องติดตั้งอะไรผิด ยังไงแนะนำหน่อยคะ :oops:

Re: โค้ด PHP Web Socket

โดย mindphp » 27/04/2012 7:32 pm

โหลดตัว server มาลงในเครื่องครับ

ส่วนฝั่ง Client เหมือนกับที่ทำไว้ ครับ
หรือดูจาก demo ก็ได้ครับ

Re: โค้ด PHP Web Socket

โดย touleg » 27/04/2012 4:20 pm

mindphp เขียน:ผมลอง ถ้าใช้ server เป็น สองตัวนี้ได้ไม่มีปัญหา เลยครับ
http://www.websocket.org
http://kaazing.com/products/kaazing-websocket-gateway

แต่ทางฝั่ง server ไม่ใช่ php นะครับ เป็น java
ขอขั้นตอนการใช้งานด้วยครับเปิดดูแล้วยังงงว่าเอาไปใช้งานยังไง

Re: โค้ด PHP Web Socket

โดย touleg » 27/04/2012 2:56 pm

จากที่ทดลองใช้ในเครื่องได้แต่พอขึ้น server แล้วเปลี่ยน url จะใช้งานไม่ได้กำลังหาวิธีแก้อยู่ครับ

Re: โค้ด PHP Web Socket

โดย mindphp » 27/04/2012 2:38 pm

ผมลอง ถ้าใช้ server เป็น สองตัวนี้ได้ไม่มีปัญหา เลยครับ
http://www.websocket.org
http://kaazing.com/products/kaazing-websocket-gateway

แต่ทางฝั่ง server ไม่ใช่ php นะครับ เป็น java

Re: โค้ด PHP Web Socket

โดย mindphp » 27/04/2012 2:32 pm

ลองดู ขึ้น
หน้าจอแรก
Connecting...
Disconnected.
You: ทดสอบ ข้อความ 1

หน้าจอ 2
Connecting...
Disconnected.
You: ทดสอบ ข้อความ 2

พิมพ์แล้วไม่ขึ้นข้อความที่ อีกจอหนึ่ง

ข้างบน