192.168.0.11 上布暑 sock 服务器一(任务1)
192.168.0.12 上布暑 sock 服务器二(任务2)
192.168.0.13 上布暑 sock 服务器三(任务3)
192.168.0.14 上布暑 sock 服务器四(任务4)
192.168.0.15 上布暑 sock 服务器五(任务5)
192.168.0.10 上布暑 sock 服务器
(实现转发功能,根据包不同包转发到不同的任务上,但是任务处理完之后的数据,有时可能要转发给每个在线的client_sock)
请问如何来维护这个client_sock虚拟表,让所有的服务器都可以调用用户虚拟表。
16 个解决方案
#1
sock服务器1/2/3/4/5 在不同的机器上,如果让所有的服务器都知道,那只能通过网络通信的方式..
sock服务器做服务端,sock服务器1 2 3.. 来主动获取client_sock虚拟表
或者,sock服务器做客户端端,sock服务器1 2 3..上部署代理,被动接收client_sock虚拟表
sock服务器做服务端,sock服务器1 2 3.. 来主动获取client_sock虚拟表
或者,sock服务器做客户端端,sock服务器1 2 3..上部署代理,被动接收client_sock虚拟表
#2
我在每个任务服务器都是布暑sock服务端,也是通过网络通信方式。
就是客服端连到代理理端时,进行转发时,这个client_soc保存在虚拟表上,不知道要如何管理比较好,让所有的soc服务端都可以方便读取到。以便发送
#3
你说的虚拟表是什么?
client_soc是什么?
client_soc是什么?
#4
两种方案:
一、代理服务器维护这个表,任务服务器将要转发的数据包发给代理,让其代为转发,缺点是代理服务器可能比较繁忙,在数据包很多的时候
二、每一个任务服务器各自维护一份表格,代理服务器在接收到客户端上线事件时,通知各个任务服务器在自己的私有表中增加这个客户端,当客户端下线时,通知各个任务服务器在自己的私有表中删除这个客户端。当任务服务器需要转发数据时,直接按照自己私有的表转发就可以了
一、代理服务器维护这个表,任务服务器将要转发的数据包发给代理,让其代为转发,缺点是代理服务器可能比较繁忙,在数据包很多的时候
二、每一个任务服务器各自维护一份表格,代理服务器在接收到客户端上线事件时,通知各个任务服务器在自己的私有表中增加这个客户端,当客户端下线时,通知各个任务服务器在自己的私有表中删除这个客户端。当任务服务器需要转发数据时,直接按照自己私有的表转发就可以了
#5
客服端(socket)连接到转发服务器(socket代理),称为client_socket
把client_socket保存起来,多个客服端同时连接,保存起来,称为虚拟表。
#6
这里面所有的服务器都是socket服务端,没有讲清楚,,可能让你误 解了
#7
客户端只与转发服务器连接?
那转发服务器就可以通知sock服务器1/2/3/4/5了
客户端下线时也一样
就是4楼说的方案2
那转发服务器就可以通知sock服务器1/2/3/4/5了
客户端下线时也一样
就是4楼说的方案2
#8
升星星了 还不发帖散分!
#9
呵呵 一会就发 现在用户现场支持
主席,混一个星星就很费劲了,你都4个星星了,仰慕..
主席,混一个星星就很费劲了,你都4个星星了,仰慕..
#10
第二个方案很好。
这个方案有一个技术问题请教一下。socket转发时,服务器是不是要跟私有表里面的成员建立连接才可以发送。
#11
对的。不知道你希望是什么样子
#12
这样有一个问题,因为我的客服端是as写的。不能主动接收服务器的连接。
同时也要保持AS在线状态。
#13
你的客户端与代理服务器是长连接方式吧?
这样的话,服务器1/2/3/4/5是不是可以通过这个长连接返回数据,而无需自己创建与客户端的连接?
再进一步,服务器12345自己甚至都不需要虚拟表了..
这样的话,服务器1/2/3/4/5是不是可以通过这个长连接返回数据,而无需自己创建与客户端的连接?
再进一步,服务器12345自己甚至都不需要虚拟表了..
#14
是长连接。。如果是这样做的话。。代理那台压力非常大。
#15
代理那台机器现在压力也应该很大吧,客户发过来的数据包都是通过它转发的,不知道实际运行时系统吞吐量是多大?
#16
这个还没有试过。
要是客服端连接多了。。。可能性能不会好。所以在想想。看有没有其它的方法。
#1
sock服务器1/2/3/4/5 在不同的机器上,如果让所有的服务器都知道,那只能通过网络通信的方式..
sock服务器做服务端,sock服务器1 2 3.. 来主动获取client_sock虚拟表
或者,sock服务器做客户端端,sock服务器1 2 3..上部署代理,被动接收client_sock虚拟表
sock服务器做服务端,sock服务器1 2 3.. 来主动获取client_sock虚拟表
或者,sock服务器做客户端端,sock服务器1 2 3..上部署代理,被动接收client_sock虚拟表
#2
我在每个任务服务器都是布暑sock服务端,也是通过网络通信方式。
就是客服端连到代理理端时,进行转发时,这个client_soc保存在虚拟表上,不知道要如何管理比较好,让所有的soc服务端都可以方便读取到。以便发送
#3
你说的虚拟表是什么?
client_soc是什么?
client_soc是什么?
#4
两种方案:
一、代理服务器维护这个表,任务服务器将要转发的数据包发给代理,让其代为转发,缺点是代理服务器可能比较繁忙,在数据包很多的时候
二、每一个任务服务器各自维护一份表格,代理服务器在接收到客户端上线事件时,通知各个任务服务器在自己的私有表中增加这个客户端,当客户端下线时,通知各个任务服务器在自己的私有表中删除这个客户端。当任务服务器需要转发数据时,直接按照自己私有的表转发就可以了
一、代理服务器维护这个表,任务服务器将要转发的数据包发给代理,让其代为转发,缺点是代理服务器可能比较繁忙,在数据包很多的时候
二、每一个任务服务器各自维护一份表格,代理服务器在接收到客户端上线事件时,通知各个任务服务器在自己的私有表中增加这个客户端,当客户端下线时,通知各个任务服务器在自己的私有表中删除这个客户端。当任务服务器需要转发数据时,直接按照自己私有的表转发就可以了
#5
客服端(socket)连接到转发服务器(socket代理),称为client_socket
把client_socket保存起来,多个客服端同时连接,保存起来,称为虚拟表。
#6
这里面所有的服务器都是socket服务端,没有讲清楚,,可能让你误 解了
#7
客户端只与转发服务器连接?
那转发服务器就可以通知sock服务器1/2/3/4/5了
客户端下线时也一样
就是4楼说的方案2
那转发服务器就可以通知sock服务器1/2/3/4/5了
客户端下线时也一样
就是4楼说的方案2
#8
升星星了 还不发帖散分!
#9
呵呵 一会就发 现在用户现场支持
主席,混一个星星就很费劲了,你都4个星星了,仰慕..
主席,混一个星星就很费劲了,你都4个星星了,仰慕..
#10
第二个方案很好。
这个方案有一个技术问题请教一下。socket转发时,服务器是不是要跟私有表里面的成员建立连接才可以发送。
#11
对的。不知道你希望是什么样子
#12
这样有一个问题,因为我的客服端是as写的。不能主动接收服务器的连接。
同时也要保持AS在线状态。
#13
你的客户端与代理服务器是长连接方式吧?
这样的话,服务器1/2/3/4/5是不是可以通过这个长连接返回数据,而无需自己创建与客户端的连接?
再进一步,服务器12345自己甚至都不需要虚拟表了..
这样的话,服务器1/2/3/4/5是不是可以通过这个长连接返回数据,而无需自己创建与客户端的连接?
再进一步,服务器12345自己甚至都不需要虚拟表了..
#14
是长连接。。如果是这样做的话。。代理那台压力非常大。
#15
代理那台机器现在压力也应该很大吧,客户发过来的数据包都是通过它转发的,不知道实际运行时系统吞吐量是多大?
#16
这个还没有试过。
要是客服端连接多了。。。可能性能不会好。所以在想想。看有没有其它的方法。