簡體   English   中英

套接字IO-如何在安全域上配置和連接到Netty套接字io服務器

[英]Socket IO - how to configure and connect to netty socket io server on a secure domain

我需要通過https做netty socket io的幫助。 我已經在本地環境中找到了它,但是沒有在具有安全域的服務器上。 服務器啟動,但客戶端無法連接。 通過使用IP和域名啟動套接字服務器進行了嘗試。 為了使服務器以setHostname方法中的域名作為主機名值開頭 ,我在/ etc / hosts文件中添加了一個條目,如下所示

127.0.0.1本地主機example.com

套接字服務器通過將example.com作為主機名啟動,但是客戶端無法通過https使用以下相同的主機名進行連接,如下所示

var socket = io.connect('https://example.com:10443')

也嘗試過選項- {安全:真,重新連接:真,rejectUnauthorized:假},但問題相同。

在服務器端,我的配置如下

Configuration configuration = new Configuration();
configuration.setHostname("example.com");
configuration.setPort(10443);
configuration.setKeyStorePassword("mypassword");
InputStream stream = getClass().getClassLoader().getResourceAsStream("keystore.jks");
configuration.setKeyStore(stream);

該jsk文件是使用keytool命令為同一域(example.com)創建的

套接字服務器還要使用10443這個端口嗎? 還是要進行其他配置?

得到了解決方案! 我沒有提到該域是在cloudflare上設置的。 這是我使用的端口-10443的問題。cloudflare不支持該端口。 將其更改為8443並成功了!

對於那些遇到這種情況的人,請在此處找到Cloudflare使用的受支持端口的列表。 與我不同,可以節省您的很多時間。

另外,請注意,我在setHostname()方法中將公用IP用作主機名,因此不需要在我的主機文件中添加任何內容。 然后在客戶端使用https給出實際的域名以連接到服務器。 而已。 謝謝你們!

桑迪普

暫無
暫無

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

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