I followed the HTML5 Websocket tutorial of the website below:
http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/
It worked well, then I changed the host value from “localhost:8080” to “218.175.192.160:8080” (my ip) in client-side page, the server side still kept “localhost:8080”.
It turns out that I can view the page in browser(apache) with http protocol, for example “http://218.175.192.160:8080/client.html“, however, the socket in client-side can not connect to “ws://218.175.192.160:8080/daemon.php”.(editted typo)
my questions are:
1.
in client side, why does websocket only work on “ws://localhost:8080/daemon.php”, not “ws://218.175.192.160:8080/daemon.php”?
2.
why socket_bind( $socket, “127.0.0.1”, 8080 ) works,
but socket_bind( $socket, “218.175.192.160”, 8080 ) occur error?
the system reminds “unable to bind address [0]: The requested address is not valid in its context”. I am sure that the Ip address belongs to my server.
Please help, Thank you.
I had found out the reason of the error: binding the wrong address, becasue i used router, even though i had set NAT service on router, but i forgot the address of “218.175.192.160” is belonging to the interface of router, not my server machine.
the address of server machine should be the local address type, for example: “192.168.1.2”, which is really on the lan card interface.
sorry that i forgot the basic network setting 🙁 , hope this post helps the network newbie like me, thx~ 🙂
I had this problem as well.
The problem is you are most likely referring to your ROUTER’s IP address. What you need to do is refer to your COMPUTER’s IP address.
It works for localhost because localhost points to your individual computer and not your router.