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();

求各位大佬指點一下,這樣優化行不行?如果行的話,我上面的兩個問題該從那方面,那里入手解決啊。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388757.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388757.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388757.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java客戶端訪問HBase集群解決方案(優化)

測試環境&#xff1a;IdeaWindows10 準備工作&#xff1a; <1>、打開本地 C:\Windows\System32\drivers\etc&#xff08;系統默認&#xff09;下名為hosts的系統文件&#xff0c;如果提示當前用戶沒有權限打開文件&#xff1b;第一種方法是將hosts文件拖到桌面進行配置后…

WPF布局系統

WPF之路——WPF布局系統 前言 前段時間忙了一陣子Google Earth&#xff0c;這周又忙了一陣子架構師論文開題報告&#xff0c;現在終于有時間繼續<WPF之路>了。先回憶一下上篇的內容&#xff0c;在《從HelloWorld到WPF World》中&#xff0c;我們對WPF有了個大概的了解&am…

PostGIS容器運行

2019獨角獸企業重金招聘Python工程師標準>>> 獲取鏡像&#xff1a; docker pull mdillon/postgis 該 mdillon/postgis 鏡像提供了容器中運行Postgres&#xff08;內置安裝PostGIS 2.5&#xff09; 。該鏡像基于官方 postgres image&#xff0c;提供了多種變體&#…

小型數據庫_如果您從事“小型科學”工作,那么您是否正在利用數據存儲庫?

小型數據庫If you’re a scientist, especially one performing a lot of your research alone, you probably have more than one spreadsheet of important data that you just haven’t gotten around to writing up yet. Maybe you never will. Sitting idle on a hard dri…

BitmapEffect位圖效果是簡單的像素處理操作。它可以呈現下面幾種特殊效果。

BitmapEffect位圖效果是簡單的像素處理操作。它可以呈現下面幾種特殊效果。 BevelBitmapEffect 凹凸效果 BlurBitmapEffect 模糊效果 DropShadowBitmapEffect投影效果 EmbossBitmapEffect 浮雕效果 Outer…

AutoScaling 與函數計算結合,賦予更豐富的彈性能力

目前&#xff0c;彈性伸縮服務已經接入了負載均衡&#xff08;SLB&#xff09;、云數據庫RDS 等云產品&#xff0c;但是暫未接入 云數據庫Redis&#xff0c;有時候我們可能會需要彈性伸縮服務在擴縮容的時候自動將擴縮容涉及到的 ECS 實例私網 IP 添加到 Redis 白名單或者從 Re…

參考文獻_參考

參考文獻Recently, I am attracted by the news that Tanzania has attained lower middle income status under the World Bank’s classification, five years ahead of projection. Being curious on how they make the judgement, I take a look of the World Bank’s offi…

java語言靜態分析工具_PMD 6.16.0 發布,跨語言靜態代碼自動分析工具

PMD 6.16.0 發布了。PMD 是一個代碼分析器&#xff0c;能夠幫助發現常見的編程問題&#xff0c;比如未使用的變量、空的 catch 塊、不必要的對象創建等等。最初僅支持 Java 代碼&#xff0c;目前還可支持 JavaScript、Salesforce.com Apex 和 Visualforce、PLSQL、Apache Veloc…

B1922 [Sdoi2010]大陸爭霸 最短路

我一直都不會dij的堆優化&#xff0c;今天搞了一下。。。就是先弄一個優先隊列&#xff0c;存每個點的數據&#xff0c;然后這個題就加了一點不一樣的東西&#xff0c;每次的最短路算兩次&#xff0c;一次是自己的最短路&#xff0c;另一次是機關的最短路&#xff0c;兩者取最大…

WPF中的鼠標事件詳解

WPF中的鼠標事件詳解 Uielement和ContentElement都定義了十個以Mouse開頭的事件&#xff0c;8個以PreviewMouse開頭的事件&#xff0c;MouseMove,PreviewMouseMove,MouseEnter,Mouseleave的事件處理器類型都是MouseEventHandler類型。這些事件都具備對應得MouseEventargs對象。…

數據統計 測試方法_統計測試:了解如何為數據選擇最佳測試!

數據統計 測試方法This post is not meant for seasoned statisticians. This is geared towards data scientists and machine learning (ML) learners & practitioners, who like me, do not come from a statistical background.?他的職位是不是意味著經驗豐富的統計人…

前端介紹-35

前端介紹-35 # 前端## 一、什么是前端 前端即網站前臺部分&#xff0c;運行在PC端&#xff0c;移動端等瀏覽器上展現給用戶瀏覽的網頁。隨著互聯網技術的發展&#xff0c;HTML5&#xff0c;CSS3&#xff0c;前端框架的應用&#xff0c;跨平臺響應式網頁設計能夠適應各種屏幕…

spring的幾個通知(前置、后置、環繞、異常、最終)

1、沒有異常的 2、有異常的 1、被代理類接口Person.java 1 package com.xiaostudy;2 3 /**4 * desc 被代理類接口5 * 6 * author xiaostudy7 *8 */9 public interface Person { 10 11 public void add(); 12 public void update(); 13 public void delete();…

每個Power BI開發人員的Power Query提示

If someone asks you to define the Power Query, what should you say? If you’ve ever worked with Power BI, there is no chance that you haven’t used Power Query, even if you weren’t aware of it. Therefore, one could easily say that Power Query is the “he…

c# PDF 轉換成圖片

1.新建項目 2.新增一個新文件夾“lib”&#xff08;主要是為了存放引用的dll&#xff09; 3.將“gsdll32.dll 、PDFLibNet.dll 、PDFView.dll”3個dll添加到文件夾中 4.項目添加“PDFLibNet.dll 、PDFView.dll”2個類庫的引用&#xff0c;并將gsdll32.dll 拷貝到項目生產根…

java finally在return_Java finally語句到底是在return之前還是之后執行?

點擊上方“方志朋”&#xff0c;選擇“置頂或者星標”你的關注意義重大&#xff01;網上有很多人探討Java中異常捕獲機制try...catch...finally塊中的finally語句是不是一定會被執行&#xff1f;很多人都說不是&#xff0c;當然他們的回答是正確的&#xff0c;經過我試驗&#…

oracle 死鎖

為什么80%的碼農都做不了架構師&#xff1f;>>> ORA-01013: user requested cancel of current operation 轉載于:https://my.oschina.net/8808/blog/2994537

面試題:二叉樹的深度

題目描述&#xff1a;輸入一棵二叉樹&#xff0c;求該樹的深度。從根結點到葉結點依次經過的結點&#xff08;含根、葉結點&#xff09;形成樹的一條路徑&#xff0c;最長路徑的長度為樹的深度。 思路&#xff1a;遞歸 //遞歸 public class Solution {public int TreeDepth(Tre…

a/b測試_如何進行A / B測試?

a/b測試The idea of A/B testing is to present different content to different variants (user groups), gather their reactions and user behaviour and use the results to build product or marketing strategies in the future.A / B測試的想法是將不同的內容呈現給不同…

hibernate h2變mysql_struts2-hibernate-mysql開發案例 -解道Jdon

Hibernate專題struts2-hibernate-mysql開發案例與源碼源碼下載本案例展示使用Struts2&#xff0c;Hibernate和MySQL數據庫開發一個個人音樂管理器Web應用程序。&#xff0c;可將您的音樂收藏添加到數據庫中。功能有&#xff1a;顯示一個添加記錄的表單和所有的音樂收藏的列表。…