簡體   English   中英

帶有JavaScript客戶端的Java套接字服務器

[英]Java Socket Server with JavaScript Client

我把一個Java套接字服務器和客戶端放在一起,可以互相發送消息,我想用JavaScript作為客戶端,但是......這就是當我托管Java服務器並加載JavaScript客戶端時會發生什么。

JavaScript的:

    var connection = new WebSocket('ws://127.0.0.1:9005');
connection.onopen = function () {
  connection.send('Ping');
};

這個打印在Chrome控制台中:

與'ws://127.0.0.1:9005 /'的WebSocket連接失敗:WebSocket握手期間出錯:狀態行無效
WebSocket錯誤[對象事件]

我想要做的是將“Ping”發送到Java服務器,但它發送所有這些東西而不是斷開連接......

這將在Java服務器控制台中打印:

面包服務器運行...
新連接自:127.0.0.1:51948
127.0.0.1:51948:GET / HTTP / 1.1
127.0.0.1:51948:主持人:127.0.0.1:9005
127.0.0.1:51948:連接:升級
127.0.0.1:51948:Pragma:no-cache
127.0.0.1:51948:緩存控制:無緩存
127.0.0.1:51948:升級:websocket
127.0.0.1:51948:原產地: http//markstuff.net
127.0.0.1:51948:Sec-WebSocket-Version:13
127.0.0.1:51948:User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)
AppleWebKit / 537.36(KHTML,與Gecko一樣)Chrome / 48.0.2564.103 Safari / 537.36
127.0.0.1:51948:Accept-Encoding:gzip,deflate,sdch
127.0.0.1:51948:Accept-Language:en-US,en; q = 0.8
127.0.0.1:51948:Sec-WebSocket-Key:D4Epyc7LwvPdfeDWG0sY2g ==
127.0.0.1:51948:Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits
127.0.0.1:51948:
錯誤:軟件導致連接中止:recv失敗

JavaScript客戶端:markstuff.net/socket/ - markstuff.net/socket/client.js
Java Server:pastebin com cdZjUWQp
Java客戶端:pastebin com efEeezcR

聽起來你正試圖將Websocket客戶端連接到服務器端的裸套接字監聽器。 注意Websocket不等於socket。 Websocket是一個基於tcp連接的協議(就像http在tcp之上的方式)。
因此,您應該將服務器實現更改為Websocket(您可以在Internet中找到許多Java Websocket庫)或將您的客戶端更改為套接字。
我不知道如何在JS中創建套接字連接但是這個主題可能對這個問題有幫助: 使用javascript從瀏覽器連接到TCP套接字

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM