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 主机建站,需要:选择一个可靠的主机提供商。购买一个域名。设置 WordPress 主机帐户。选择一个主题。添加页面和文章。安装插件。自定义您的网站。发布您的网站。

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

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

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

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

导入 WordPress 源码需要以下步骤:创建子主题以进行主题修改。导入源码,覆盖子主题中的文件。激活子主题,使其生效。测试更改,确保一切正常。

可以通过以下方法查看 WordPress 前端:登录仪表盘并切换到“查看站点”选项卡;使用无头浏览器自动化查看过程;安装 WordPress 插件在仪表盘内预览前端;通过本地 URL 查看前端(如果 WordPress 在本地设置)。
