我一直在嘗試使用 nodejs 設定 wss 服務器,并且在嘗試使用 chrome 連接到它時遇到了問題。禁用所有擴展程式并在隱身視窗中仍然會出現該問題,因此我已將其排除為問題。
嘗試使用 chrome 連接時,出現錯誤:
WebSocket connection to 'wss://www.domain-name.com/' failed:
沒有給出任何理由。在服務器上,socket.on('close') 被立即呼叫,描述為“連接被遠程對等點斷開”關閉事件有 wasClean = false。從 safari 和 Firefox 連接時不會發生此錯誤,因此我不確定在哪里查看導致它的原因。它在 AWS Lightsail 上運行,并通過 Apache 代理服務器。
客戶端代碼:
var socket = new WebSocket("wss://www.domain-name.com", 'JSON')
socket.onopen = function (event) {
console.log('open');
socket.send('socket opened')};
socket.onclose = function (event) {
console.log(event)};
socket.onmessage = function(message) {
console.log('receiving message from server...')};
和服務器代碼:
const WebSocketServer = require('websocket').server;
app = express()
var server = app.listen(3000, () => {
console.log('Server started');
});
app.use(express.static('public'));
var wsServer = new WebSocketServer({
httpServer: server
});
wsServer.on('request', function(request){
console.log('New connection');
var connection = request.accept(null, request.origin);
connection.send('welcome from server...');
connection.on('message', function(message){
console.log(message)};
connection.on('close', function(reasonCode, description) {
console.log('disconnecting', reasonCode, description);
});
});
在切換到安全的 WebSocket 服務器之前,我也遇到了同樣的錯誤。任何幫助將不勝感激,我已經沒有地方可以尋找和嘗試獲取更多資訊以幫助解決問題的方法了。
編輯:它似乎適用于我手機上的 chrome,但不適用于我朋友手機上的 chrome?
uj5u.com熱心網友回復:
問題在于接受連接時未指定協議。在處理相同的錯誤并實施 SSL 證書以使其正常作業大約 20 小時后,我進行了更改:
request.accept(null, request.origin);
到:
request.accept('json', request.origin);
出于某種原因,chrome 給出了一個非常無用的錯誤訊息。Microsoft edge 發生了相同的錯誤,但提供了更有用的錯誤訊息,因此我可以弄清楚發生了什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/438139.html
標籤:javascript 节点.js 阿帕奇 谷歌浏览器 网络套接字
