pzverr/websocket

基于morozovsk/websocket的简单PHP WebSocket服务器

该软件包的官方仓库似乎已不存在,因此该软件包已被冻结。

dev-master 2017-11-29 15:02 UTC

This package is not auto-updated.

Last update: 2023-06-28 13:26:32 UTC


README

基于 morozovsk/websocket 的分支。
在守护进程类中添加自定义选项。

安装

{
    "require": {
        "pzverr/websocket": "dev-master",
    }
}

Symfony2 示例

AppBundle\Console\Command\WebSocketServerCommand.php

class WebSocketServerCommand extends ContainerAwareCommand
{
    ...
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $em = $this->getContainer()->get('doctrine')->getManager();

        $servers = [
            'default' => [
                'class' => 'AppBundle\WebSocket\DefaultDaemonHandler',
                'pid' => '/tmp/websocket_default.pid',
                'websocket' => 'tcp://:5001',
                'options' => [
                    'em' => $em,
                ]
            ]
        ];

        $action = $input->getArgument('action');

        $server = $input->getArgument('server');

        $WebSocketServer = new Server($servers[$server]);
        call_user_func(array($WebSocketServer, $action));
    }
}

AppBundle\Services\DefaultDaemonHandler.php

use pzverr\websocket\Daemon;
...
class DefaultDaemonHandler extends Daemon
{
    protected function onOpen($connectionId, $info)
    {
        $entity = $this->em->getRepository('FooBundle:Entity')->find(1);
        //etc
    }
}
...