我有一个关于如何负载平衡Web套接字的问题.
我有一个支持Web套接字的服务器.浏览器连接到我的站点,每个浏览器打开一个Web套接字www.mydomain.com.这样,我的社交网络应用程序可以将消息推送到客户端.
传统上,只使用HTTP请求,我会通过在两个Web服务器前添加第二个服务器和负载均衡器来扩展.
使用Web套接字,连接必须直接与Web服务器,而不是负载平衡器,因为如果一台机器的物理限制为64k开放端口,并且客户端连接到负载均衡器,那么我无法支持超过64k并发用户.
那我该怎么办 -
让页面加载时客户端直接连接到Web服务器(而不是负载均衡器)?我是否只是从节点加载JavaScript,并且每次最初请求页面时,负载均衡器(或其他)会随机修改脚本的URL?
处理涟漪开始?当Web服务器关闭时,浏览器会注意到连接已关闭.我可以编写JavaScript代码来尝试重新打开连接,但该节点将会消失一段时间.所以我想我必须回到负载均衡器来查询下一个要使用的节点的地址?
我确实想知道负载均衡器在初始请求上发送重定向,以便浏览器最初请求www.mydomain.com并重定向到www34.mydomain.com.这很有效,直到节点出现故障 - 像Facebook这样的网站不这样做.他们是如何做到的呢?
有人可以给我提供一个非常简单的websocket客户端使用示例javax.websocket吗?
我想连接到的WebSocket(WS://socket.example.com:1234),发送短信(加信道)和收听留言.所有消息(已发送和已侦听)均为JSON格式.
顺便说一句,这个库最适合简单的websocket通信吗?
我想在浏览器端构建一个相对于页面URI的WebSocket URI.比方说,在我的情况下转换HTTP URI就像
http://example.com:8000/path
https://example.com:8000/path
Run Code Online (Sandbox Code Playgroud)
至
ws://example.com:8000/path/to/ws
wss://example.com:8000/path/to/ws
Run Code Online (Sandbox Code Playgroud)
我目前正在做的是用"ws"替换前4个字母"http",并将"/ to/ws"附加到它上面.那有更好的方法吗?
我使用PHP5和Chrome浏览器作为客户端使用Web套接字.我从网站http://code.google.com/p/phpwebsocket/上获取了代码.
我运行服务器,客户端也连接.我也可以聊天.现在,当我重新启动服务器(通过杀死它并再次启动它)时,客户端获取断开连接的信息,但在发送消息时自动不会重新连接服务器.
怎么做到这一点?就像我收到断开连接的信息一样,我应该检查它并将其发送到JavaScript以刷新页面或重新连接吗?
如何在JavaScript\HTML中使用套接字?
可能会使用一些很酷的HTML5?
图书馆?教程?博客文章?
根据协议,如何使用WebSocket在服务器端发送和接收消息?
当我将数据从浏览器发送到服务器时,为什么我在服务器上看到看似随机的字节?它以某种方式编码数据?
框架如何在服务器→客户端和客户端→服务器方向上工作?
我在Rails 3中开始了项目,我需要添加通知(比如Facebook一个).最好的方法是使用WebSocket作为iPad等支持设备,但我找不到任何好的工具来轻松地在Rails中实现它.我找到了Pusherapp,但他们的价格太高了,我也不认为向第三方公司提供我的数据是明智的.所以需要的东西:
我刚刚开始熟悉AngularJS,但是我想构建一个Web应用程序,当服务器端数据库发生变化时,该应用程序的视图可以为用户实时自动升级(无刷新).
AngularJS可以自动处理这个(大部分)吗?如果是这样,工作的基本机制是什么?
例如,您是否以某种方式设置AngularJS以定期轮询数据库以进行"模型"更改?或者使用某种类似Comet的机制来通知AngularJS客户端代码该模型已更改?
在我的应用程序中,挑战在于其他(非Web)服务器端软件有时会更新数据库.但是这个问题同样适用于纯web应用程序,在这些应用程序中,您可能有多个客户端通过AngularJS Web客户端更改数据库,并且当其中一个客户端对DB(模型)进行更改时,每个客户端都需要更新.
我不明白为什么我不能使下面的代码工作.我想用JavaScript连接到我的服务器控制台应用程序.然后将数据发送到服务器.
这是服务器代码:
static void Main(string[] args)
{
TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 9998);
server.Start();
var client = server.AcceptTcpClient();
var stream = client.GetStream();
while (true)
{
var buffer = new byte[1024];
// wait for data to be received
var bytesRead = stream.Read(buffer, 0, buffer.Length);
var r = System.Text.Encoding.UTF8.GetString(buffer);
// write received data to the console
Console.WriteLine(r.Substring(0, bytesRead));
}
}
Run Code Online (Sandbox Code Playgroud)
这是JavaScript:
var ws = new WebSocket("ws://localhost:9998/service");
ws.onopen = function () {
ws.send("Hello World"); // I WANT TO SEND THIS MESSAGE TO THE …Run Code Online (Sandbox Code Playgroud) 使用WebSockets时,我是否需要编写服务器代码?换句话说,我的客户端应用程序中的JavaScript是否需要连接到专用服务器,或者我现有的Apache服务器是否会支持这种情况?