JavaScript websocket 实例

websocket.js

    /*  判断浏览器是否内置了websocket */
    if ('WebSocket' in window) {
        websocket = new WebSocket('ws://180.76.116.33:19910/websocket');
    }


    websocket->onerror = 'onerror';
    websocket->onopen = 'onopen';
    websocket->onmessage = 'onmessage';
    websocket->onclose = 'onclose';
    websocket->onbeforeunload = 'onbeforeunload';
    websocket->closeWebSocket = 'closeWebSocket';
    weboskcet->send = 'send';


    /* 连接失败时触发 */
    function onerror () {
        setMessageInnerHTML('websocket connection error');
    }


    /* 连接成功时触发 */
    function onopen () {
        setMessageInnerHTML('websocket connect success');
    }


    /* 收到新消息时触发 */
    function onmessage (event) {
        setMessageInnerHTML(event);
    }


    /* 连接关闭时触发 */
    function onclose () {
        setMessageInnerHTML('websocket connectionn closed');
    }


    /* 当窗口关闭时,主动关闭websocket连接。防止连接还没断开就关闭窗口,server端异常 */
    function onbeforeunload () {
        closeWebSocket();
    }


    /* 关闭websocket连接 */
    function closeWebSocket () {
        websocket.close();
    }


    /* 发送消息 */
    function send () {
        var message = document.getElementById('container').value;
        websocket.send(message);
    }

 

服务可以用MeepoPS/SWOOLE搭建:

 下面是MeepoPS实例

// 下载MeepoPS
git clone https://github.com/lixuancn/MeepoPS.git
// 进入目录
cd MeepoPS/Example/Chat_Robot

// 普通模式启动:
sudo php chat_rebot.php start
// 守护进程模式启动:
sudo php chat_rebot.php start -d

守护进程启动下:
ps -aux | grep php
能看到chat_rebot.php 说明启动成功了。



注意浏览器访问的端口和chat_rebot.php 端口一致。
例如 centos 7 防护墙查看端口19911 是否开启:


// 查看防火墙状态:
systemctl status firewalld.service

// 开启端口19911
firewalld-cmd --permanent --zone=public --add-port=19911/tcp

// 重启防火墙查看端口:

systemctl restart firewalld.service
firewall-cmd --query-port=19910/tcp

如果出现yes即为开启成功。



打开浏览器访问websocket.js,控制台查看log.

猜你喜欢

转载自www.cnblogs.com/phpcurd/p/9216541.html
今日推荐