相关疑难解决方法(0)

多个websocket连接

从同一客户端到同一服务器有两个不同的websocket连接有什么好处吗?对我而言,这似乎是一个糟糕的设计选择,但有什么原因/它应该更好地解决?

javascript client websocket

37
推荐指数
2
解决办法
1万
查看次数

来自同一页面的多个 websocket,使用 java 作为服务器端

在我的网络应用程序中,我有 2 个 websocket 连接到同一端口上的服务器。一个 Websocket 用于聊天信使,同一页面上的另一个 Websocket 显示当前查看该事件的总人数。

聊天网络套接字:

var chat = new WebSocket("ws://localhost:8080/chat");
Run Code Online (Sandbox Code Playgroud)

我的聊天窗口上有一个发送按钮,当用户单击发送按钮时,将调用 send_message 函数,该函数通过 websocket 聊天将消息发送到服务器。

function send_message() {
  chat.send("Hey There!");
}
Run Code Online (Sandbox Code Playgroud)

当从服务器收到消息时,我调用 onMessage 函数来获取数据。

chat.onmessage = function(evt) { onMessage(evt) };

function onMessage(evt) {
  alert('Message Recived from server: "+evt.data);
}
Run Code Online (Sandbox Code Playgroud)

页面加载后,聊天 Websocket 就会打开,而当任何用户单击加入活动按钮时, attendeeCount Websocket 就会打开。如果有人加入或离开活动,我想向其他用户显示参加者数量增加或减少的实时更新。因此,假设一个用户正在参加一个活动,并且他现在看到的当前与会者人数为 10,而另一个用户加入了该活动,那么该人数应更新为 11。

当用户单击“加入活动”按钮时,将向服务器发出 ajax 调用,并在出席者表中创建一个条目。因此,一旦 ajax 调用在我的 ajax 调用的成功回调中成功,我将打开第二个 websocket 连接并将数据发送到服务器,以向其他用户显示更新的与会者计数。它就像 Facebook 的点赞一样,无需刷新页面即可在您眼前更新。

$.ajax({

    type: 'POST',
    url: '/mixtri/rest/event/updateAttendeeCount',
    contentType: "application/x-www-form-urlencoded",
    data: {data},

    success: function(result){
     var attendeeCount = new WebSocket("ws://localhost:8080/attendeeCount");
     attendeeCount.onopen …
Run Code Online (Sandbox Code Playgroud)

javascript jquery websocket

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×2

websocket ×2

client ×1

jquery ×1