Пишу чат элементарный. Запуская сервер - вижу, что количество сессий всегда равняется "1", сколько бы вкладок или браузеров я бы не открыл. Но при этом, каждая новая вкладка имеет свой ID при open().
@OnOpen
public void open(final Session session, @PathParam("room") final String room) {
session.getUserProperties().put("room", room);
System.out.println("Create new SESSION: "+ session.getId());
}
@OnMessage
public void onMessage(final Session session, final ChatMessage chatMessage) {
try {
for (Session s : session.getOpenSessions()) {
if (s.isOpen()) {
s.getBasicRemote().sendObject(chatMessage);
System.out.println("Connect! "+ session.getOpenSessions().size()); // always size==1
}
}
} catch (IOException | EncodeException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
Что упускаю? Сообщение идёт в формате JSON, там всё отлично, сообщение приходит серверу, а с сервера к клиенту. Но только одному! Это из-за того я подозреваю, что всегда ТОЛЬКО 1 сессия почему-то...
var wsocket;
var serviceLocation = "ws://localhost:8080/WebApp/chat/";
var $nickName;
var $message;
var $chatWindow;
function onMessageReceived(evt) {
var msg = JSON.parse(evt.data); // native API
var $messageLine = $('<tr><td>' + msg.sender
+ '</td><td>' + msg.message
+ '</td></tr>');
$chatWindow.append($messageLine);
}
function sendMessage() {
var msg = '{"message":"' + $message.val() + '", "sender":"'
+ $nickName.val() + '"}';
wsocket.send(msg);
$message.val('').focus();
}
function connectToChatserver() {
wsocket = new WebSocket(serviceLocation);
wsocket.onmessage = onMessageReceived;
}
$(document).ready(function () {
$nickName = $('#nickname');
$message = $('#message');
$chatWindow = $('#response');
$('#do-chat').submit(function (evt) {
evt.preventDefault();
connectToChatserver();
sendMessage()
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Что значит "Метод или операция не реализована"? У меня в этом коде ошибка:
Как задать background color у textblock в коде при наведение мышки на него