java建立tcp服务器长连接_B/S 架构下后端能否建立 TCP 长连接?
这种架构下,这样的优化策略能实现吗?能有作用吗?
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 长连接?相关推荐
- TCP/IP协议学习笔记(三)Window下socket编程(一)TCP
DLL的加载 使用#pragma命令,在编译时加载: #pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll 使用DLL之前,还需要 ...
- tcp服务器制作,用telnet来测试你自己写的TCP服务器
有时候我们写一个tcp的服务器程序,需要让客户端发起一个连接,来验证是否能正确的 绑定到端口 接受连接 接受数据 通常我们需要写一个客户端,但是如果你用telnet的话,那就不用为了上面的这个目的而写 ...
- bsd协议开源框架tcp服务器,搬运RT Thread中BSD Socket实现UDP及TCP例子
/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * ...
- linux(ARM架构)下的mysql安装、QT连接mysql数据库(完整版)
一.安装MYSQL之前要先换源 二.安装MYSQL 1.安装 2.安装完成 3.安装后无法登陆 3.1 原因 3.2 登陆后切换database 3.3 修改密码(注意这里账号和密码是双引号) 3.4 ...
- Python | Socket02 - 使用with语句建立一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回
一.前言 Python | Socket01 - 创建一个TCP服务器(阻塞+单线程),将TCP客户端发过来的字符串原路返回 在上一篇博文完成TCP服务器简单的收发程序后,发现在Python上有更加简 ...
- arm linux tcp,ARM Linux多连接TCP服务器的应用程序设计
嵌入式Linux工控主板EM9160的主要功能之一就是作为网络平台,工控领域中比较常见的网络应用是利用TCP/IP协议进行数据通讯.在网络应用中,通常都实现多连接的应用需求,本文主要介绍EM9160作 ...
- 【STM32H7】第8章 ThreadX NetXDUO之TCP服务器
最新教程下载:ThreadX NetXDUO网络协议栈教程更新记录贴,前11章已经发布(2022-01-03) - uCOS & uCGUI & emWin & embOS & ...
- 【STM32F407】第8章 ThreadX NetXDUO之TCP服务器
最新教程下载:ThreadX NetXDUO网络协议栈教程更新记录贴,前11章已经发布(2022-01-03) - uCOS & uCGUI & emWin & embOS & ...
- c tcp服务器发送文件,c语言tcp文件传输
c语言tcp文件传输 内容精选 换一换 第18节Linux网络管理入门本节所讲内容:18.1OSI七层模型和TCP/IP四层模型18.1.1OSI七层模型OSI七层模型是任何与网络相关的知识都无法跳过 ...
最新文章
- 计算机英语 动态,计算机英语高级词汇精选
- 爬虫 spider12——暂停小总结_爬虫流程_微服务架构流程
- 五皇后问题 java_Java的5个古怪问题
- 扑克牌大小的充电宝,你有吗?
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
- zabbix 2.4.5 自定义key监控redis
- Ubuntu 9.10上搭建andrioid开发环境
- CSS Reset Modern CSS Reset
- Rbf神经网络使用Tensorflow实现
- 第三代USRP 产品对比
- The server cannot or will not process the request due to something that is perceived to be a client.
- win7下安装配置opengrok
- 聚焦:中国八大城市娶老婆的成本
- 像点坐标的系统误差及其改正
- linux scons ld_run_path,使用scons替代makefile(3)
- fstream —文件读写操作
- ⅰcp经济模型_EOQ经济批量模型上篇(模型基础)
- 你离黑客的距离,就差这20个神器
- 第二章 Redis高级
- php中ceil的用法,php ceil函数怎么用?