websocket相关的,怎么在共享IP的虚拟主机上放用PHP写的websocket代码?

websocket相关的,怎么在共享IP的虚拟主机上放用PHP写的websocket代码?,第1张

要服务器才行呢,空间不行,商家是不会给你开守护进程的。

首先php要开启支持socket的扩展库,这个简单,windows的话直接开启就好了,一般都会自带它的库文件,再改下phpini文件就好了。最后重启服务,执行phpinfo()函数,看到支持socket就ok了。

后来才是重头戏,首先你要开启socket监听端口,然后在用php去连接,再处理。

必须要主机才行,

全手打,望采纳!

不建议使用js进行这个处理,你这样做的话完整过程为

1 用户访问php页面

2 服务端输出html

3 浏览器运行js检查ip所属区域

4 ajax方式提交区域信息给服务器

5 服务器返回查询结果

6 js将查询结果显示到当前页面

你想想这要多长时间。因此最好是php端直接判断区域,然后直接查询并输出就行了。

提供一个php写的函数,如果有用望采纳

function getCityByUserIp() {

    $ip = false;

    if (isset($_SERVER)){

        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

            $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];

        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {

            $ip = $_SERVER["HTTP_CLIENT_IP"];

        } else {

            $ip = $_SERVER["REMOTE_ADDR"];

        }

    } else {

        if (getenv("HTTP_X_FORWARDED_FOR")){

            $ip = getenv("HTTP_X_FORWARDED_FOR");

        } else if (getenv("HTTP_CLIENT_IP")) {

            $ip = getenv("HTTP_CLIENT_IP");

        } else {

            $ip = getenv("REMOTE_ADDR");

        }

    }

    if (false === $ip) {

        return false;

    }

    $file = fopen('http://intdpoolsinacomcn/iplookup/iplookupphpformat=js&ip=' $ip, 'r');

    $content = fread($file, 1024);

    fclose($file);

    if (! preg_match("/^var remote_ip_info = (\\{[^\\}]+\\});$/", $content, $_match)) {

        return false;

    }

    $ipInfo = json_decode($_match[1]);

    return $ipInfo;

}

返回的数组中包括 country, province, city等,如果返回false表示无法获得ip或该ip没有在大陆地区匹配的记录(港澳台似乎有province,但是没有city)。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » websocket相关的,怎么在共享IP的虚拟主机上放用PHP写的websocket代码?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情