
场景:
java 游戏服务器,原生 socket 通信
后台 web 服务器,php
需求:
能否把这两个服务器合并到一起
其他猜想:
比如原来的微信或是 qq,有手机端,pc 端,web 端,服务端是如何架构可以让这三端通信的
1 watzds 2020-06-20 08:33:48 +08:00 via Android Java web 里也可以加 socket 处理啊,或者加 netty 都行 |
2 opengps 2020-06-20 08:33:57 +08:00 socket 是依赖服务端程序的,web 端的那个 websocket 是多了信息头的。 三端通信最终都是转发实现,并非都直接用在同一个集群里的同一套代码逻辑 |
3 lbmjsls1 OP |
4 cnzjl 2020-06-20 08:41:49 +08:00 可以合到一起,比如 WEB 开发使用 SpringBoot,然后 socket 使用 Netty |
5 Seney 2020-06-20 09:17:44 +08:00 为什么不用 netty 呢 尤其是游戏服务器对网络要求蛮高的 |
6 hantsy 2020-06-20 09:24:43 +08:00 可以啊,Spring 已经支持 RSocket 规范,支持 TCP,Websocket 等协议。游戏开发就更适合 RSocket 这种协议了。 eg. https://github.com/hantsy/rsocket-sample/tree/master/crud 这个例子中,client 与 server 之间使用 tcp 通讯,为了方便测试,client 同时暴露了基于 HTTP 的 REST API 给外部。 |
7 hantsy 2020-06-20 09:29:30 +08:00 |
8 Amance 2020-06-20 09:38:45 +08:00 rpc 通信就行了 |
9 hantsy 2020-06-20 09:56:07 +08:00 |
10 RJH 2020-06-20 10:09:11 +08:00 可以通过使用 MQ 或者共享数据库来实现三端通信 |
11 opengps 2020-06-20 10:40:18 +08:00 @lbmjsls1 刚才理解叉批了,我以为你说的 web 是浏览器端,看你后来意思应当是服务器端的 web,那就都可以用 socket 开发了,你可以用同样逻辑的 socket 核心进行不同位置的托管转发实现,具体实现方式就不用多说了,完全由你自己设计 |
12 taogen 2020-06-20 11:29:32 +08:00 via Android Web server 是帮你将 TCP messages 转换为 HTTP messages,底层还是 socket 通信。 原生的 socket 通信直接写个 Java 程序,创建 socket,监听端口,处理请求就行了。 两个应用可以合并到一台服务器,只要服务器的资源吃得消就行。 |
13 sagaxu 2020-06-20 11:49:46 +08:00 via Android Java web 跟普通 Java 没有区别 |
14 micolore 2020-06-20 12:40:08 +08:00 via iPhone 服务器高并发必然要用到 nio,netty 是首选,至于怎么结合,要看你们的系统架构了。 |
15 jimrok 2020-06-20 14:33:20 +08:00 只要不是 raw socket,java 是可以搞的。raw socket 写 ping 这种代码需要发 icmp 的包,java 就搞不来了。 |