我做一个网页,调用SOCKET通信的相关函数,但是页面显示完后好像SOCKET就自动断开了,怎么解决,我想多次访问这个页面都还要共享这个SOCKET状态

解决方案 »

  1.   

    保持连接的话socket都是while(1){}死循环的
      

  2.   

    用下面的函数设置keepalvie的值来保持连接。
    socket_set_option($socket, SOL_SOCKET, SO_KEEPALIVE, 10000);
      

  3.   

    (1)socket_set_option这个好像显示完页面还是会断掉
    (2)如果用while循环的话,好像不太合适我用,因为我是想做几个按钮,点一下就连接,再点另一个,就发送一些数据,再点一下,就断开,等等,如果用WHILE,好像没有交互的效果啊?如何做呢,本来这些SOCKET的应用程序都好做,但转到网页里面实现,习惯都变了,请大家出谋一下,谢谢
      

  4.   

    在while循环中加个判断就行了,没试过,仅供参考,文件模式聊天我就是这么干的,比如在while循环中每次判断下某个文件的上次修改时间filemtime($filename),可以通过对第三方这个file的修改时间来进行某些双方不方便的操作,当然了这是个思路,也许有其他的方法
      

  5.   

    你说的是socket server如何实现监听,LZ问的应该是socket 客户端在浏览器环境下如何保持和socket server的连接,呵呵.
      

  6.   

    他说while不符合他的随时断开与连接这个问题,而我是针对于这个问题,这个问题解决了也就可以用whilie了
      

  7.   


    页面显示完当然断开。如果用程序打开一人连接:可以尝试打开连接后后断地重新请求(在一个页里),不过这种情况下页面执行完,连接也应是关闭。如果你想在多个请求中保持连接。 一般浏览器会发送keepalive头,如果服务器端支持,则自动为持续连接,可以多次请求。
      

  8.   

    php执行完以后会自动释放内存的。