想要一份可以参考的代码,我打算一个客户端发送数据到服务器上,然后服务器把收到的数据转发给另一个客户端,现在找到的方法都是直接客户端和服务器单向连接的,客户端发服务器收,我想要他们双向通信,能够让服务器把我的数据发给其他客户端或者自己,刚刚接触这块,希望大神们能够给我一个帮助!!谢谢大佬们!
可以借助中间件,例如mq
通过http请求,调用对方的接口,和你调用百度api,短信api那些一样
web端的话有两种方式
1.推模式,这个需要服务端推送消息给客户端,所以需要服务端和客户端建立长链接,如websocket,服务端全局管理websocket的连接;
也就是说为websocket编号,这样数据实时性比较好,因为客户端传递过来后就可以直接推送给目标,websocket的连接管理编号可以用
客户的唯一标志;
缺点1:如果服务端是多机部署的话,客户端一想要发送数据给客户端二:步骤如下
客户端一发送数据给服务端一,但是客户端二的连接句柄在服务器二上,这时候就需要保证服务器之间能快速路由;设计相对复杂;
所以可以有一个中心调度服务来进行连接路由
缺点2:需要建立心跳机制保证连接没有断线,断线需要重连
2.拉模式,每个客户端都有间隔的轮训是否有自己的消息,如果有,则拉取过来,没有就准备下次轮训;
缺点1:实时性得不到有效保障(取决于轮训间隔时间)
缺点2:多机部署的情况下,数据需要存储于数据库、缓存、文件等中心服务区
希望对你有帮助...
客户端轮训的成本太高,建议还是采用长链接来实现,sokect或者netty,mina等socket框架,一般服务器主动推都需借用长链实现