标签: websocket

负载平衡Web套接字

我有一个关于如何负载平衡Web套接字的问题.

我有一个支持Web套接字的服务器.浏览器连接到我的站点,每个浏览器打开一个Web套接字www.mydomain.com.这样,我的社交网络应用程序可以将消息推送到客户端.

传统上,只使用HTTP请求,我会通过在两个Web服务器前添加第二个服务器和负载均衡器来扩展.

使用Web套接字,连接必须直接与Web服务器,而不是负载平衡器,因为如果一台机器的物理限制为64k开放端口,并且客户端连接到负载均衡器,那么我无法支持超过64k并发用户.

那我该怎么办 -

  1. 让页面加载时客户端直接连接到Web服务器(而不是负载均衡器)?我是否只是从节点加载JavaScript,并且每次最初请求页面时,负载均衡器(或其他)会随机修改脚本的URL?

  2. 处理涟漪开始?当Web服务器关闭时,浏览器会注意到连接已关闭.我可以编写JavaScript代码来尝试重新打开连接,但该节点将会消失一段时间.所以我想我必须回到负载均衡器来查询下一个要使用的节点的地址?

  3. 我确实想知道负载均衡器在初始请求上发送重定向,以便浏览器最初请求www.mydomain.com并重定向到www34.mydomain.com.这很有效,直到节点出现故障 - 像Facebook这样的网站不这样做.他们是如何做到的呢?

load-balancing server-push websocket

91
推荐指数
2
解决办法
4万
查看次数

javax.websocket客户端简单示例

有人可以给我提供一个非常简单的websocket客户端使用示例javax.websocket吗?

我想连接到的WebSocket(WS://socket.example.com:1234),发送短信(加信道)和收听留言.所有消息(已发送和已侦听)均为JSON格式.

顺便说一句,这个库最适合简单的websocket通信吗?

java websocket

91
推荐指数
4
解决办法
20万
查看次数

如何构建相对于页面URI的WebSocket URI?

我想在浏览器端构建一个相对于页面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"附加到它上面.那有更好的方法吗?

uri relative-path websocket

87
推荐指数
5
解决办法
9万
查看次数

服务器在WebSocket中重新启动时重新连接客户端

我使用PHP5和Chrome浏览器作为客户端使用Web套接字.我从网站http://code.google.com/p/phpwebsocket/上获取了代码.

我运行服务器,客户端也连接.我也可以聊天.现在,当我重新启动服务器(通过杀死它并再次启动它)时,客户端获取断开连接的信息,但在发送消息时自动不会重新连接服务器.

怎么做到这一点?就像我收到断开连接的信息一样,我应该检查它并将其发送到JavaScript以刷新页面或重新连接吗?

websocket

85
推荐指数
4
解决办法
7万
查看次数

如何在JavaScript\HTML中使用套接字?

如何在JavaScript\HTML中使用套接字?

可能会使用一些很酷的HTML5?

图书馆?教程?博客文章?

html javascript html5 websocket

82
推荐指数
3
解决办法
19万
查看次数

如何在服务器端发送和接收WebSocket消息?

  • 根据协议,如何使用WebSocket在服务器端发送和接收消息?

  • 当我将数据从浏览器发送到服务器时,为什么我在服务器上看到看似随机的字节?它以某种方式编码数据?

  • 框架如何在服务器→客户端和客户端→服务器方向上工作?

encoding protocols decoding websocket

82
推荐指数
6
解决办法
10万
查看次数

最好的Ruby on Rails WebSocket工具

我在Rails 3中开始了项目,我需要添加通知(比如Facebook一个).最好的方法是使用WebSocket作为iPad等支持设备,但我找不到任何好的工具来轻松地在Rails中实现它.我找到了Pusherapp,但他们的价格太高了,我也不认为向第三方公司提供我的数据是明智的.所以需要的东西:

  • 开源
  • 某种渠道支持
  • Rails的助手(并使用Rails 3)

ruby-on-rails websocket ruby-on-rails-3

81
推荐指数
4
解决办法
5万
查看次数

如果外部应用程序更改了持久模型(服务器数据库),AngularJS可以自动更新视图吗?

我刚刚开始熟悉AngularJS,但是我想构建一个Web应用程序,当服务器端数据库发生变化时,该应用程序的视图可以为用户实时自动升级(无刷新).

AngularJS可以自动处理这个(大部分)吗?如果是这样,工作的基本机制是什么?

例如,您是否以某种方式设置AngularJS以定期轮询数据库以进行"模型"更改?或者使用某种类似Comet的机制来通知AngularJS客户端代码该模型已更改?

在我的应用程序中,挑战在于其他(非Web)服务器端软件有时会更新数据库.但是这个问题同样适用于纯web应用程序,在这些应用程序中,您可能有多个客户端通过AngularJS Web客户端更改数据库,并且当其中一个客户端对DB(模型)进行更改时,每个客户端都需要更新.

javascript websocket socket.io angularjs

81
推荐指数
2
解决办法
4万
查看次数

创建"Hello World"WebSocket示例

我不明白为什么我不能使下面的代码工作.我想用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)

javascript c# websocket

79
推荐指数
4
解决办法
18万
查看次数

我是否需要服务器才能使用HTML5的WebSockets?

使用WebSockets时,我是否需要编写服务器代码?换句话说,我的客户端应用程序中的JavaScript是否需要连接到专用服务器,或者我现有的Apache服务器是否会支持这种情况?

html5 websocket

78
推荐指数
4
解决办法
9万
查看次数