HTML5 Websocket仅适用于localhost

ssa*_*sac 13 php html5 localhost ip-address websocket

我按照以下网站的HTML5 Websocket教程:

http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

它工作得很好,然后我在客户端页面中将主机值从"localhost:8080"更改为"218.175.192.160:8080"(我的IP),服务器端仍保留"localhost:8080".

事实证明,我可以使用http协议在浏览器(apache)中查看页面,例如" http://218.175.192.160:8080/client.html ",但是,客户端的套接字无法连接到"ws" ://218.175.192.160:8080/daemon.php".(编辑拼写错误)

我的问题是:1.在客户端,为什么websocket只能用于"ws:// localhost:8080/daemon.php",而不是"ws://218.175.192.160:8080/daemon.php"?

2.为什么socket_bind($ socket,"127.0.0.1",8080)有效,但socket_bind($ socket,"218.175.192.160",8080)发生错误?系统提醒"无法绑定地址[0]:请求的地址在其上下文中无效".我确信IP地址属于我的服务器.

请帮忙,谢谢.

我找出了错误的原因:绑定错误的地址,因为我使用了路由器,即使我在路由器上设置了NAT服务,但我忘了"218.175.192.160"的地址属于路由器的接口,而不是我的服务器机器.

服务器机器的地址应该是本地地址类型,例如:"192.168.1.2",它实际上在lan卡接口上.

对不起,我忘了基本的网络设置:(,希望这篇文章有助于像我这样的网络新手,thx~ :)

Mos*_*ses 1

我也有这个问题。

问题是您很可能指的是路由器的 IP 地址。您需要做的是参考您计算机的IP 地址。

它适用于本地主机,因为本地主机指向您的个人计算机而不是您的路由器。