有例子嗎?
服務(wù)端代碼:
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
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");
}
為什么會出現(xiàn)剛連接就斷開的情況呢,信息也沒有收到
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 start.php status
Workerman status
Workerman not run
PHP Warning: readfile(/var/folders/f3/wm99g0j500n3ytswgpk0f4j00000gn/T/workerman.status): failed to open stream: No such file or directory in /Workerman/Worker.php on line 520
Warning: readfile(/var/folders/f3/wm99g0j500n3ytswgpk0f4j00000gn/T/workerman.status): failed to open stream: No such file or directory in /Workerman/Worker.php on line 520
我兩邊都實現(xiàn)協(xié)議了
服務(wù)端:$worker = new Worker('websocket://0.0.0.0:8484');
客戶端:mSocket = IO.socket("websocket://192.168.0.11:8484");
可是會出現(xiàn)馬上斷開的情況。。
上面是運行php start.php status 返回的信息。/Workerman/Worker.php 這個路徑明明就存在怎么會說不存在呢?
php -v
PHP 5.5.27 (cli) (built: Jul 14 2015 17:04:01)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
php -m
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
ldap
libxml
mbstring
mhash
mysql
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_mysql
PDO_ODBC
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
這個最好抓包看下,是誰關(guān)閉的連接,這樣才好查問題
抓包參見手冊 http://doc.workerman.net/debug/tcpdump.html
https://github.com/walkor/phpsocket.io
基于workerman實現(xiàn)的Socket.IO 可以直接使用