socket.io与workerman的问题
有谁玩过这两个东西吗?这两个都能使用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>
客户端代码:用的是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>
为什么会出现刚连接就断开的情况呢,信息也没有收到。这面这些是服务器收到的信息。
<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>
回复内容:
有谁玩过这两个东西吗?这两个都能使用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>
客户端代码:用的是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>
为什么会出现刚连接就断开的情况呢,信息也没有收到。这面这些是服务器收到的信息。
<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>
https://github.com/walkor/phpsocket.io
这里有php版本的socket.io,应该也是基于workerman做的
socket.io的客户端封装了自己的协议,不能直接连workman吧?

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

WordPress 屏蔽 IP 的插件选择至关重要。可考虑以下类型:基于 .htaccess:高效,但操作复杂;数据库操作:灵活,但效率较低;基于防火墙:安全性能高,但配置复杂;自行编写:最高控制权,但需要更多技术水平。

WordPress 错误解决指南:500 内部服务器错误:禁用插件或检查服务器错误日志。404 未找到页面:检查 permalink 并确保页面链接正确。白屏死机:增加服务器 PHP 内存限制。数据库连接错误:检查数据库服务器状态和 WordPress 配置。其他技巧:启用调试模式、检查错误日志和寻求支持。预防错误:定期更新 WordPress、仅安装必要插件、定期备份网站和优化网站性能。

登录 WordPress 网站账号的步骤:访问登录页面:输入网站网址加上 "/wp-login.php"。输入用户名和密码。点击“登录”。验证两步验证(可选)。成功登录后,您将看到网站仪表盘。

更换 WordPress 主题头部图片的分步指南:登录 WordPress 仪表盘,导航至“外观”>“主题”。选择要编辑的主题,然后单击“自定义”。打开“主题选项”面板并寻找“网站标头”或“头部图片”选项。单击“选择图像”按钮并上传新的头部图片。裁剪图像并单击“保存并裁剪”。单击“保存并发布”按钮以更新更改。

WordPress 网站中启用评论功能:1. 登录管理面板,转到 "设置"-"讨论",勾选 "允许评论";2. 选择显示评论的位置;3. 自定义评论表单;4. 管理评论,批准、拒绝或删除;5. 使用 <?php comments_template(); ?> 标签显示评论;6. 启用嵌套评论;7. 调整评论外形;8. 使用插件和验证码防止垃圾评论;9. 鼓励用户使用 Gravatar 头像;10. 创建评论指

WordPress 编辑日期可以通过三种方法取消:1. 安装 Enable Post Date Disable 插件;2. 在 functions.php 文件中添加代码;3. 手动编辑 wp_posts 表中的 post_modified 列。

在WordPress中创建自定义页头的步骤如下:编辑主题文件“header.php”。添加您的网站名称和描述。创建导航菜单。添加搜索栏。保存更改并查看您的自定义页头。
