Bir Jetty Websocket servlet uygularım. Sunucu yeni bir bağlantı aldığında, websocket'un onopen işleviyle okunacak bir mesaj göndermek istiyorum. Bu iletinin yalnızca açıkken ve normal connection.SendMessage() işlevini kullanmadan gönderilmesini istiyorum. Bunu yapmak mümkün mü? ve nasıl?websocket bağlantısı açıldığında veri göndermek mümkün
cevap
Protokolde bunun için destek yok, ancak kendiniz bir şeyleri fışkırtabilirsiniz.
- Sunucunuz bir el sıkışma işlemini tamamladığında, istemciye teslim etmek istediğiniz ilk iletiyi saklayın.
- Müşterinizin
onopen
işlevinde, "başlangıç iletisini oku" isteği gönderin. - Sunucunuzda, bu istemcinin ilk iletisini okumadığını kontrol edin; mesajla cevap vermek; İlk mesajın gönderildiğini belirten bir bayrak ayarlayın.
- İstemciniz ve sunucunuz artık başka iletiler göndermekte serbesttir.
Sorgu dizesini unutmayın. WebSocket URL'sinde geçerlidir.
new Websocket('ws://yoursite.com/path?a=1&b=2&c=3')
Ardından, verileri almak için sunucu tarafında bu URL'yi kolayca ayrıştırabilirsiniz.
ya da sunucu tarafında URL'yi nasıl ayrıştırıyorsunuz? url kendisi nerede kullanılabilir? –
muhtemelen bir @PathParam seçeneğinden de bahsetmeli ... [bu yanıt] 'a bakın (https://stackoverflow.com/questions/21559260/how-do-i-pass-a-parameter-to-the-onopen- usul-ile-jee7-WebSockets) –
Online arama yaparken bir şeyleri gözden kaçırmış olabilir miyim diye merak ediyordum. Önerdiğin yaklaşımı takip edeceğim. – DPD