Heim > Backend-Entwicklung > PHP-Tutorial > socket.io与workerman的问题

socket.io与workerman的问题

WBOY
Freigeben: 2016-06-06 20:27:35
Original
2338 Leute haben es durchsucht

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

workerman服务端代码:

<code>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";
};
</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code>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");

}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code>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
</code>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

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

workerman服务端代码:

<code>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";
};
</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code>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");

}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code>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
</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage