这种架构下,这样的优化策略能实现吗?能有作用吗?

php 服务端请求 ES tcp server 部分代码

$streamClient = stream_socket_client("tcp://{$tcpHost}:{$tcpPort}", $errno, $errstr);

// 该数组是所有业务线的分类结构,及每条业务线要搜索的关键字,单个元素对应一条业务线

$categoriesFilter = [];

foreach ($categoriesFilter as $categoryFilter) {

fwrite($streamClient, json_encode($categoryFilter);

}

然后我就不知道该如何实现写的同时接收数据了。并保证每条业务线的数据都发送了,也收到响应了。

ES tcp server 部分代码

$searchServer = new \swoole_server('0.0.0.0', 9501);

$searchServer->on('connect', function (\Swoole\Server $server, $fd) {

dump($server->connection_info($fd));

});

$searchServer->on('receive', function (\Swoole\Server $server, $fd, $reactor_id, $request) {

global $keyword;

global $elastic;

$requestArray = json_decode($request, true);

$keyword = $requestArray;

// es 搜索代码

$result = $elastic->indexFilterAndSearch($requestArray);

$server->send($fd, json_encode($result));

});

$searchServer->on('WorkerStart', function (\Swoole\Server $server, $work_id) {

global $elastic;

$elastic = new ElasticSearch;

});

$searchServer->on('close', function (\Swoole\Server $server, $fd, $reactorId) {

global $keyword;

$clientConnectionInfo = $server->connection_info($fd);

file_put_contents('swoole_log.log', json_encode([

'connectionTime' => date('Y-m-d H:i:s', $clientConnectionInfo['connect_time']),

'closeTime' => date('Y-m-d H:i:s'),

'keyword' => $keyword,

'ip' => $clientConnectionInfo['remote_ip']

]) . PHP_EOL, FILE_APPEND);

});

$searchServer->start();

求各位大佬指点一下,这样优化行不行?如果行的话,我上面的两个问题该从那方面,那里入手解决啊。。。

java建立tcp服务器长连接_B/S 架构下后端能否建立 TCP 长连接?相关推荐

  1. TCP/IP协议学习笔记(三)Window下socket编程(一)TCP

    DLL的加载 使用#pragma命令,在编译时加载: #pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll 使用DLL之前,还需要 ...

  2. tcp服务器制作,用telnet来测试你自己写的TCP服务器

    有时候我们写一个tcp的服务器程序,需要让客户端发起一个连接,来验证是否能正确的 绑定到端口 接受连接 接受数据 通常我们需要写一个客户端,但是如果你用telnet的话,那就不用为了上面的这个目的而写 ...

  3. bsd协议开源框架tcp服务器,搬运RT Thread中BSD Socket实现UDP及TCP例子

    /* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * ...

  4. linux(ARM架构)下的mysql安装、QT连接mysql数据库(完整版)

    一.安装MYSQL之前要先换源 二.安装MYSQL 1.安装 2.安装完成 3.安装后无法登陆 3.1 原因 3.2 登陆后切换database 3.3 修改密码(注意这里账号和密码是双引号) 3.4 ...

  5. Python | Socket02 - 使用with语句建立一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回

    一.前言 Python | Socket01 - 创建一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回 在上一篇博文完成TCP服务器简单的收发程序后,发现在Python上有更加简 ...

  6. arm linux tcp,ARM Linux多连接TCP服务器的应用程序设计

    嵌入式Linux工控主板EM9160的主要功能之一就是作为网络平台,工控领域中比较常见的网络应用是利用TCP/IP协议进行数据通讯.在网络应用中,通常都实现多连接的应用需求,本文主要介绍EM9160作 ...

  7. 【STM32H7】第8章 ThreadX NetXDUO之TCP服务器

    最新教程下载:ThreadX NetXDUO网络协议栈教程更新记录贴,前11章已经发布(2022-01-03) - uCOS & uCGUI & emWin & embOS & ...

  8. 【STM32F407】第8章 ThreadX NetXDUO之TCP服务器

    最新教程下载:ThreadX NetXDUO网络协议栈教程更新记录贴,前11章已经发布(2022-01-03) - uCOS & uCGUI & emWin & embOS & ...

  9. c tcp服务器发送文件,c语言tcp文件传输

    c语言tcp文件传输 内容精选 换一换 第18节Linux网络管理入门本节所讲内容:18.1OSI七层模型和TCP/IP四层模型18.1.1OSI七层模型OSI七层模型是任何与网络相关的知识都无法跳过 ...

最新文章

  1. 计算机英语 动态,计算机英语高级词汇精选
  2. 爬虫 spider12——暂停小总结_爬虫流程_微服务架构流程
  3. 五皇后问题 java_Java的5个古怪问题
  4. 扑克牌大小的充电宝,你有吗?
  5. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
  6. zabbix 2.4.5 自定义key监控redis
  7. Ubuntu 9.10上搭建andrioid开发环境
  8. CSS Reset Modern CSS Reset
  9. Rbf神经网络使用Tensorflow实现
  10. 第三代USRP 产品对比
  11. The server cannot or will not process the request due to something that is perceived to be a client.
  12. win7下安装配置opengrok
  13. 聚焦:中国八大城市娶老婆的成本
  14. 像点坐标的系统误差及其改正
  15. linux scons ld_run_path,使用scons替代makefile(3)
  16. fstream —文件读写操作
  17. ⅰcp经济模型_EOQ经济批量模型上篇(模型基础)
  18. 你离黑客的距离,就差这20个神器
  19. 第二章 Redis高级
  20. php中ceil的用法,php ceil函数怎么用?

热门文章

  1. socket通信和异常处理札记
  2. Python3常用数据结构
  3. Linux下shell脚本指定程序运行时长
  4. TCP协议-如何保证传输可靠性
  5. 【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针,指向其他结构体
  6. System V IPC之共享内存
  7. 965. 单值二叉树
  8. Java垃圾收集机制
  9. dorado-SplitSpanel控件
  10. IOS上传文件给java服务器,返回报错unacceptable context-type:text/plain