PHPackages                             ller/chat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. ller/chat

ActiveLibrary[HTTP &amp; Networking](/categories/http)

ller/chat
=========

A simple private chat package

v1.0(5y ago)013MITPHP

Since May 26Pushed 5y ago1 watchersCompare

[ Source](https://github.com/Ller-git/chat)[ Packagist](https://packagist.org/packages/ller/chat)[ RSS](/packages/ller-chat/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

\#chat composer require ller/chat v1.0

### simple\_demo.php

[](#simple_demophp)

```
use Ller\Chat\Server;
$ws = new Server();
$ws = $ws->run("0.0.0.0", "8080");

```

命令行执行 `php simple_demo.php`

### Client1.html

[](#client1html)

```
    var uname = 1;  // 自己的唯一标识
    var to = 2;     // 好友的唯一标识
    var ws = new WebSocket("ws://127.0.0.1:8080");

    // 发送信息
    function send(msg) {
        var data = JSON.stringify({'from': uname, 'to': to, 'content': msg, 'type': 'user'});
        ws.send(data);
    }

    // 获取服务器响应信息
    ws.onmessage = function (e) {
        var msg = JSON.parse(e.data);

        switch (msg.type) {
            case 'user':
                console.log(msg.content);
                break;
            case 'handshake':
                // 注意：连接成功之后立即发送登录信息
                var user_info = {'type': 'login', 'content': uname, 'to': to, 'from': uname};
                ws.send(JSON.stringify(user_info));
                break;
            default:
                return;
        }
    };

```

### Client2.html

[](#client2html)

```
    var uname = 2;  // 自己的唯一标识
    var to = 1;     // 好友的唯一标识
    var ws = new WebSocket("ws://127.0.0.1:8080");

    // 发送信息
    function send(msg) {
        var data = JSON.stringify({'from': uname, 'to': to, 'content': msg, 'type': 'user'});
        ws.send(data);
    }

    // 获取服务器响应信息
    ws.onmessage = function (e) {
        var msg = JSON.parse(e.data);

        switch (msg.type) {
            case 'user':
                console.log(msg.content);
                break;
            case 'handshake':
                // 注意：连接成功之后立即发送登录信息
                var user_info = {'type': 'login', 'content': uname, 'to': to, 'from': uname};
                ws.send(JSON.stringify(user_info));
                break;
            default:
                return;
        }
    };

```

client1和client2是一个简单的私聊，可以用已经封装的send()发送消息，比如`send('你好，世界');`

### detailed.php

[](#detailedphp)

想要更多的操作，比如未发送成功的消息保存到数据库，或者某个用户上线了，需要查找他的未读消息。 注意1：这里的几个函数都是当用户进行websocket连接之后才会触发的。如果想要未连接websocket就查找信息，可以在未读信息sent\_fail()函数把未发送的信息保存到数据库。 注意2：这个包太多地方未完善了，所以不要用在正式的网站上。

```
