V2EX POST
648 subscribers
138 photos
31 videos
99 files
104K links
v2ex新贴定时推送,可按需置顶本频道然后关闭通知
Download Telegram
请教 netty 加路由有啥比较好的实践吗

最近在学 netty ,想写个聊天室,有单聊、群聊(群创建、邀请、加群、退群)。技术栈目前想的是 Angular 、websocket 、netty 、spring boot 。用 spring boot 是因为想用现成的路由,但是感觉好别扭啊。

想问问大佬 netty 怎么加路由比较好。

#netty #spring #boot #路由 #单聊 #群聊 #加群 #退群 #Angular #websocket
写了个支持链式代理的隧道工具

写这个工具本来是为了打通公司内复杂的网络环境,但发现应用场景其实还挺多的,所以想分享出来。比较有特色的功能主要由以下几点:

* 提供访问各种不同隧道 /代理服务的能力
* 支持的隧道 /代理服务类型包括: https 、socks4 、socks5 、websocket 、ssh 、icmp 、k8s
* 支持创建的隧道 /代理服务类型有: https 、socks4 、socks5 、websocket
* SSH 隧道支持绕过端口转发限制
* 支持 TCP 端口映射、SSL 端口映射
* 支持通过配置文件的方式,指定不同的策略,允许使用不同的代理服务访问不同的目标服务
* 支持嵌套代理

工具地址: https://github.com/drunkdream/turbo-tunnel
文档地址: https://ttun.top/

#代理服务 #https #隧道 #支持 #socks4 #socks5 #websocket #端口映射 #不同 #地址
开发了一个 golang 的游戏端框架,欢迎大家指导一下

https://github.com/metagogs/gogs

使用 proto 定义消息,自动生成相关逻辑代码。
目前支持 websocket 和 webrtc datachannel

希望大家指导

#https #github #com #metagogs #gogs #proto #websocket #webrtc #datachannel #定义
Java 游戏后端开发入门, 涉及 quarkus vertx 最近一些思考

最近项目组开发直播在线类 unity 游戏,类似于 MMO 游戏,有房间、 多人在线概念,房间内人员加入、走动、退出,都要通知到的房间内其他人,所以需要一个高性能用户状态(主要是坐标位置信息)消息广播转发服务,当前的服务 基于 nodejs ,使用 koa 路由,grpc 转发,
由于本人一直从事 java 后端开发,所以想用 java 开发一个消息转发服务。

网上找资料零零散散找了很久,目前已经出来一个基础的 demo ,

基本架构:
提供的 url: interface/{userId}/{teamId}

负载:使用 nginx url hash
通过 hash teamId 将相同房间的负载到同一台机器,规避了服务器间相互调用。

服务:
使用了 quarkus 自带的 ServerEndpoint 注解的 websocket ,自带的 websocket 好像目前版本也用到了 vertx 这些,自己创建 map 管理 组内成员状态,这样组内广播也是单服务广播,暂时基本满足需求,无须全服广播,后期不确定有没有这个需求。 后期准备加入 verx cluster 这些特性,支持分布式。

目前进展:
正在找工具压测,
压测目标: 至少 100 个连接同时在一个房间内,一个新成员加入房间,随机生成坐标信息,通知到房内所有人(最大 99 人),同时房间内所有人当前坐标信息通知给这个新成员( 99+1 条消息)。当成员移动时,将坐标信息 发给房间内所有其他人( 99 条消息)。


网上找了一个工具 https://github.com/MirrenTools/Orion-Stress-Tester ,魔改了一下,支持我当前服务接口的 动态传参,但是初步测试了下,感觉性能也不是很强,是不是 quarkus 自带的 websocket 不是很强,看了下基于 undertow ,压测一会就有连接报错,感觉性能也不是很强?有大佬知道啥原因不,或者有兴趣的,一起交流下,
或者有其他 websocket 高性能广播转发开源组件 也可以推荐,谢谢大佬们了。

#房间内 #websocket #广播 #转发 #压测 #99 #坐标 #服务 #自带 #成员
请教大佬们一个问题,关于如何在 shell 脚本中使用 websocket

## 目前已经在 java 后端实现了 websocket ,但现在需要通过 shell 脚本来执行 websocket 的各种操作,比如连接 websocket , 发送消息到服务端,心跳,接收服务端发送的消息。请问应该怎么弄?找了一圈都是基于浏览器实现的,却没有通过 shell 脚本能实现的,请问各位大佬有啥思路吗?

#websocket #shell #服务端 #发送 #请问 #实现 #脚本 ### #java #怎么弄
搬瓦工 gia 日本服务器 443 端口突然被封,墙又高了?

就在刚刚,梯子突然不能用了,检查一番发现 443 端口无法连接,ssh 居然还可以,上去改了一个端口暂时用着。

就自己用也被墙,墙又高了吗。

用的 trojan-go + 域名 + tls + websocket

补救措施:挂 cf 的话是不是安全些?速度影响较大?

#端口 #443 #ssh #trojan #go #tls #websocket #cf #补救措施 #域名
cloudflare tunnel 该怎么配置支持 websocket 呢?

rt ,想做个 unraid 的内网穿透,需要 websocket ,官方说是支持的,但是文档 /网上找了一圈都没有提到要怎么设置,有哪位用过吗?

#内网 #rt #unraid #websocket #文档 #哪位 #用过 #穿透 #一圈 #官方
请教各位技术大大一个 websocket 消息丢失的问题

我们目前有个即时通讯的场景,使用了 websocket 方案,但是经常会出现消息丢失的情况,包括 ping 发不出去,消息发不出去,或 pong 收不到,回复消息收不到等;
但是连接可以建立成功,即最初使用 http update 和 switch 的流程;
同一时间,其他网络都没问题,包括同应用其他业务的 Http 请求和获取应答。

通过抓包也发现不了什么异常,暂时没啥头绪,只能怀疑网络转发设备是否有阻塞或消息丢失的情况了……

#收不到 #消息 #丢失 #网络 #有个 #websocket #ping #pong #http #update
各大厂商云服务器的 WebShell 有速度限制吗?

境外云服务器网络很不稳定,连 SSH 都经常会被断开,但网页版的 webshell 却非常稳定,毕竟经过厂商自己的服务器中转。简单分析了下基本都是通过 websocket 实现。如果写个程序,将流量通过 webshell 转发的话,应该会稳定很多~ 不过有如下疑问:

webshell 的流量是否单独计费?是否有带宽限制?

#webshell #服务器 #稳定 #流量 #SSH #websocket #是否 #断开 #带宽 #计费
YouTube 直播聊天内容抓取

YouTube 直播的时候边上有个聊天窗口,我想做个 chrome 插件抓取聊天窗口的内容,请教下大老们有什么办法可以实现,给点思路也好。我对 websocket 或者 webrtc 不了解,正想好好研究研究,不知道方向对不对。我知道可以直接通过 JavaScript 获取 DOM 内容,然后遍历即可,但是聊天内容很多的时候,这种方法需要不断点击查看更多。

#聊天 #内容 #窗口 #插件 #YouTube #有个 #chrome #下大 #老们 #websocket
搭建专属于你的消息推送服务

## 前言
差不多两年之前,我在 V 站分享了自己的消息推送项目,当时收到了很多支持与关注。

这是原帖子: https://www.v2ex.com/t/745694

时隔两年,现在项目已经完全由 Go + React 重写,并添加了一些新的功能。

## 功能
1. 多种消息推送方式:
+ 邮件消息,
+ 微信测试号,
+ 企业微信应用号,
+ 企业微信群机器人
+ 飞书群机器人,
+ 钉钉群机器人,
+ Bark App,
+ WebSocket 客户端([官方客户端]( https://github.com/songquanpeng/personal-assistant),[接入文档](./docs/API.md#websocket-客户端)),
2. 多种用户登录注册方式:
+ 邮箱登录注册以及通过邮箱进行密码重置。
+ [GitHub 开放授权]( https://github.com/settings/applications/new)。
+ 微信公众号授权(需要额外部署 [WeChat Server]( https://github.com/songquanpeng/wechat-server))。
3. 支持 Markdown 。
4. 支持用户管理。
5. Cloudflare Turnstile 用户校验。
6. 支持在线发布公告,设置关于界面以及页脚。

## 部署 & 配置
仅单个可执行文件,没有其他依赖开箱即用,同时也提供了 Docker 镜像。

部署:`docker run -d --restart always --name message-pusher -p 3000:3000 -v /home/ubuntu/data/message-pusher:/data justsong/message-pusher`

更新:`docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR`

(由于之前是 Node.js 项目,且没有提供 Docker 镜像,大家一般是直接 Git clone ,所以 README 上显示的 docker pulls 的次数目前并没有很多。)

具体的部署和配置方法还请参考项目 README 。

## 演示
在线演示:
https://msgpusher.com

截图展示:
![]( https://user-images.githubusercontent.com/39998050/208071931-dc410f9e-60d4-4671-a678-f5cb3ba7000a.png)


## 其他
项目地址: https://github.com/songquanpeng/message-pusher

期待大家的反馈,谢谢!

#https #com ### #docker #github #run #message #pusher #微信 #songquanpeng
👍1
redis 怎么实现存储 websocket 对象

突然想起以前做个一个 IM 的项目(项目已经结束很久了), 使用的 websocket(Django+Channels),但链接对象是存在 redis 里的 不过现在想来 底层都是 TCP , 怎么把 TCP 链接状态存到 redis 里的呢? 存的 TCP 五元组么?有点蒙蔽, 也没去看源码, 有老哥了解过的, 大致的讲解一下么。

#TCP #redis #链接 #源码 #IM #websocket #Django #Channels #组么 #五元