簡體   English   中英

在Azure Ubuntu VM上設置支持WebSocket的應用程序

[英]Setting up a websocket capable application on an azure ubuntu vm

好的,所以我已經在蔚藍的雲中創建了一個ubuntu vm,我已經成功啟動了nodejs,redis,socket.io,Express和我正在編寫的游戲的所有組件。

我在內部和外部端口8080上設置了Azure終結點,並在我的js代碼中使用app.listen(8080)。

當我瀏覽到http:// <app-name> .cloudapp.net:8080 /時,我可以很好地查看nodejs應用程序的結果,它顯示html,css等。

但是,當它嘗試啟動套接字連接時(使用socket.io),我只能在Websockets的chrome開發控制台上得到以下信息:

HeadersPreviewResponseWebSocket Frames
Request URL:ws://<app-name>.cloudapp.net:8080/socket.io/1/websocket/13510496541533398587
Request Method:GET
Status Code:101 Switching Protocols
Request Headersview source
Connection:Upgrade
Host:<app-name>.cloudapp.net:8080
Origin:http://<app-name>.cloudapp.net:8080
Sec-WebSocket-Extensions:x-webkit-deflate-frame
Sec-WebSocket-Key:y5vueHE66phl70gle7KCtw==
Sec-WebSocket-Version:13
Upgrade:websocket
(Key3):00:00:00:00:00:00:00:00
Response Headersview source
Connection:Upgrade
Sec-WebSocket-Accept:dn+2lA6sMIXHLEmDS/Q4j/IIwxI=
Upgrade:websocket
(Challenge Response):00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

當我嘗試在客戶端(瀏覽器)上使用socket.emit()發送任何內容時,也會在蔚藍中使nodejs應用崩潰。 在我的azure ssh中,它只是說“調試:程序節點app.js退出,代碼為空”,這並不是特別有用。

因此,顯然連接不正確? 我也嘗試在nodejs上偵聽端口80,但是我什至沒有得到標准的網頁(html,css等)。

根據我在網上閱讀的內容,如果您不使用Web角色(我假設vm不是),則很有可能使套接字正常工作。

知道如何使它起作用嗎? (最好在端口80上)?

編輯:開始懷疑這是否與套接字無關,意識到我在家庭vm(正在工作的地方)上得到了相同的交換協議消息。 衍生問題: 如何在ubunu azure vm上查看nodejs程序的崩潰詳細信息?

Windows Azure負載平衡器上的時間大約是60秒。

如果在建立Websocket連接后立即將消息發送回客戶端,是否可行?

如果是這種情況,您將必須實施一些保留實時消息的發送,每分鍾發送一次。

暫無
暫無

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

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