websocket没有连接

时间:2012-10-31 14:47:13

标签: websocket ubuntu-12.04

我可以将websocket连接到本地计算机上的服务器。但是当我将文件上传到远程ubuntu服务器时,它不再起作用了。

服务器端代码(server.php):

$master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($master, SOL_SOCKET, SO_REUSEADDR, 1);
socket_bind($master, "127.0.0.1", 80);
socket_listen($master, 20);

客户端代码:

<script type="text/javascript">
var host = "ws://127.0.0.1:80/server.php";
socket = new WebSocket(host);
</script>

我从chrome canary版本24打开客户端页面,服务器端没有得到任何接受的套接字。

我将主机更改为“ws://xx.xx.xx.xx:80 / server.php”到服务器的真实IP地址,不起作用。还将服务器端socket_bind($ master,“127.0.0.1”,80)更改为真正的ip,也没有运气。

任何人都可以帮助我?

谢谢,

茉莉

1 个答案:

答案 0 :(得分:0)

我的朋友,当你写服务器时。您需要将其作为服务运行或保持运行。 在php服务器的情况下,你需要从PHP Cli(php yourfile.php)运行该文件,而不是从浏览器运行(你可以,将超时设置为0,但如果你关闭浏览器,你的服务器就会停止工作)。 我真的不建议使用PHP的套接字服务器。阅读有关使用C ++(QT,Berkeley)或Java Socket Servers的套接字服务器的更多信息。

当我们谈论HTML5 Websockets服务器时,它与编写“普通”套接字服务器不同(PHP有很多可以帮助您编写HTML5 Websocket服务器的库)

https://github.com/Flynsarmy/PHPWebSocket-Chat

在该链接中,您可以找到聊天的示例。有一个名为class.PHPWebSocket.php的文件,将其包含在server.php中,并使用该库创建HTML5 Websocket服务器。请参阅示例,了解它的工作原理以及如何使用class.PHPWebSocket.php(请查看示例中的server.php文件)。

完成后运行服务器。

然后做:

// ...
var host = "ws://IP.OF.THE.SERVER:port";
socket = new WebSocket(host);
// ...

阅读有关套接字服务器,HTML5 Websockets的更多信息,并查看该class.PHPWebSocket.php实用程序。 祝你好运。