php - socket.io与workerman的问题
伊谢尔伦
伊谢尔伦 2017-04-10 16:05:54
[PHP讨论组]

有谁玩过这两个东西吗?这两个都能使用websocket协议,
而且workerman服务器的onConnect都已经执行了,说明客户端和服务器是能联系的。
但是为什么刚一连接上马上就断开了呢?而且服务器也没有收到客户端发送的信息。

workerman服务端代码:

use Workerman\Worker;
require_once '../Workerman/Autoloader.php';

$worker = new Worker('websocket://0.0.0.0:8484');
$ws_worker->count = 4;

$worker->onConnect = function($connection)
{
echo "new connection from ip " . $connection->getRemoteIp() . "\n";

};

$worker->onMessage = function($connection, $data)
{
var_dump($data);
$connection->send('receive success');
};

$worker->onError = function($connection, $code, $msg)
{
echo "error $code $msg\n";
};

$worker->onBufferFull = function($connection)
{
echo "bufferFull and do not send again\n";
};
$worker->onBufferDrain = function($connection)
{
echo "buffer drain and continue send\n";
};

$worker->onClose = function($connection)
{
echo "connection closed\n";
};

$worker->onWorkerStop = function($worker)
{
echo "Worker stopping...\n";
};

$worker->onWorkerStart = function($worker)
{
echo "Worker starting...\n";
};

客户端代码:用的是socket.io,这是一个android应用

private Socket mSocket;
{
    try {
        mSocket = IO.socket("websocket://192.168.0.11:8484");
    } catch (URISyntaxException e) {}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity1);

    mSocket.connect();
    mSocket.emit("hello", "hello world");
    mSocket.emit("emit something");
    mSocket.send("send something");
    mSocket.send("hello","thanks");

}

为什么会出现刚连接就断开的情况呢,信息也没有收到。这面这些是服务器收到的信息。

new connection from ip 192.168.0.3
connection closed
new connection from ip 192.168.0.3
connection closed
new connection from ip 192.168.0.3
connection closed
new connection from ip 192.168.0.3
connection closed
new connection from ip 192.168.0.3
connection closed
new connection from ip 192.168.0.3
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
大家讲道理

https://github.com/walkor/phpsocket.io
这里有php版本的socket.io,应该也是基于workerman做的

天蓬老师

socket.io的客户端封装了自己的协议,不能直接连workman吧?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号