惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
Jina AI
Jina AI
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
博客园 - 司徒正美
罗磊的独立博客
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Vercel News
Vercel News
A
About on SuperTechFans
I
InfoQ
D
DataBreaches.Net
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
aimingoo的专栏
aimingoo的专栏
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队

WebSocket

如果有多个 websocket 业务需求,一般情况下后端是建立一个还是多个 websocket 更好? webSocket 在项目运动过程中 可以时不时重新连接吗? websocket 下载文件的原理是啥? 麻烦问个 Java websocket 的性能优化问题(比较基础) 请教一下 websocket 实现发图片的方案和保存聊天记录的方案; 问些 websocket 的问题 websocket 的 ping/pong 标准是需要服务器主动发 ping? [有偿] 原生 app 开发即时通讯 关于 websocket 长链接的问题 请教, websockets 模块起服务, websockets.serve 的方法问题。 WebSocket 频繁爆出异常 问一个 websockets 的问题 Java 中 websocket 中 session 长久保持打开状态 使用 gevent 作为 Websocket 服务端,浏览器上用 setInterval 定时重复建立 Websocket,结果导致 gevent 不会自动释放之前废弃的连接,内存快要溢出了。怎么自动回收废弃连接呢 websocket 在 springsecurity 下结合 jwt 的问题 sync-player:使用 websocket 实现异地同步播放视频 Websocket 直播间聊天室教程 - GoEasy 快速实现聊天室 Uniapp 使用 GoEasy 实现 websocket 实时通讯 搭建 websocket 消息推送服务,必须要考虑的几个问题 最近在看 websocket 的聊天室功能,有个小疑问
websocket 如何投递消息到 http
v2li32 · 2024-05-13 · via WebSocket

我在构思微服务下如何通过 websocket 作为交互。

运行流程

client => http => server => ws/tcp => server2 收到 => server2 通过 unixsocket 投递消息到 work 处理完成后 => 通过 ws 写消息回去 => server 的 ws 收到消息

这个时候 如果正常处理 加工收到的消息, 写入消息到 client 的 fd,close 掉 client 连接 应该是可行的。

平常业务代码

client => server(伪代码)=> return

<?php

func add(){
	$get= $_REQUEST_PARAMS;
	return success("code=>200,data=$get,msg=''");
}

如果换成上面通过 websocket 交互

都不需要返回了, server 收到 server2 结果后 fwrite($client_fd,$data); close($client_fd);

<?php

func add(){
	$get= $_REQUEST_PARAMS;
    (new Ws)->send($get);
}

上面写好奇怪的样子。。 我想实现下面的写法有办法吗(代码直观看着舒服),比如

<?php

func add(){
	$get= $_REQUEST_PARAMS;
    $res = (new Ws)->send($get);

    return success("code=>200,data=$res,msg=''");
}

如果想实现上面这样子,需要在加一个队列(起到 while true 阻塞效果?)。

开辟 1 片内存 $arr[$client_fd] => $data; 数据回来后写入。然后 pop 消息。

这样子就好像成 select 了。。 无时无刻在遍历,有数据在返回,性能问题很大。。

然后好像为了解决问题又引入新的问题。

大佬们给点思路呢