Websocket Headshake отвечает 400, но все равно работает -- node.js поле с участием sockets поле с участием nginx поле с участием websocket поле с участием socket.io пол Связанный проблема

WebSocket handshake responds 400, but still works


1
vote

проблема

русский

Я использую <код> socket.io , чтобы сделать чат на моем сайте, нет проблем, когда я бегу в моем компьютере, но когда я бегу на нее на производственный сервер, <код> socket.io.js / код> Выведите следующую ошибку:

 <код> WebSocket connection to 'ws://myWebsite.com/socket.io/?EIO=3&transport=websocket&sid=1qtzy4QRde6G-PHkAAAU' failed: Error during WebSocket handshake: Unexpected response code: 400   

Я использую <код> socket.io@1.4.5 для сервера и клиента

Сайт прослушивает порта <код> 8080 за <код> nginx с портом <Код> 80 , все работает нормально, кроме сообщения об ошибке, но чат все еще функционально, это очень странно.

Я искал несколько подобных проблем на переполнении стека, и предлагаемые решения уже мои <код> nginx настроек (<код> <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p1BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <depends>jboss.messaging:service=pf</depends> <attribute name="MaxDeliveryAttempts">1</attribute> </mbean> <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p2BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <depends>jboss.messaging:service=pf</depends> <attribute name="MaxDeliveryAttempts">1</attribute> </mbean> 0 ):

 <код> <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p1BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>  <depends>jboss.messaging:service=pf</depends>  <attribute name="MaxDeliveryAttempts">1</attribute> </mbean>  <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p2BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>  <depends>jboss.messaging:service=pf</depends>  <attribute name="MaxDeliveryAttempts">1</attribute> </mbean>  1  

Meteor Websocket Ошибка рукопожатия 400 с nginx Meteor Websocket Connection на «WS: // ... / Websocket 'не удалось: ошибка во время рукопожатия Websocket: неожиданный код ответа: 400

Хотя в чате все еще работает, я все еще хочу избавиться от сообщения об ошибке

Для вашей ссылки, ниже <код> <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p1BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <depends>jboss.messaging:service=pf</depends> <attribute name="MaxDeliveryAttempts">1</attribute> </mbean> <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p2BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <depends>jboss.messaging:service=pf</depends> <attribute name="MaxDeliveryAttempts">1</attribute> </mbean> 2 Связанный код:

 <код> <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p1BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>  <depends>jboss.messaging:service=pf</depends>  <attribute name="MaxDeliveryAttempts">1</attribute> </mbean>  <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.messaging.destination:service=Queue,name=p2BatchQ" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>  <depends>jboss.messaging:service=pf</depends>  <attribute name="MaxDeliveryAttempts">1</attribute> </mbean>  3  
Английский оригинал

I use socket.io to make a chat room in my website, there is no problem when I run it in my computer, but when I run it on the production server, the socket.io.js output the following error:

WebSocket connection to 'ws://myWebsite.com/socket.io/?EIO=3&transport=websocket&sid=1qtzy4QRde6G-PHkAAAU' failed: Error during WebSocket handshake: Unexpected response code: 400 

I am using socket.io@1.4.5 for server and client

The website is listening on port 8080 behind nginx with port 80, everything works fine except the error message, but the chat room is still functional, that is very strange.

I have searched some similar issues on Stack Overflow, and the suggested solutions are already my nginx settings (/etc/nginx/sites-enabled/myWebsite.com):

server {         listen 80;         server_name myWebsite.com;          location / {                 proxy_pass http://127.0.0.1:8080;                 proxy_http_version 1.1;                 proxy_set_header Host $host;                 proxy_set_header Upgrade $http_upgrade;                 proxy_set_header Connection 'upgrade';         } } 

Meteor WebSocket handshake error 400 with nginx Meteor WebSocket connection to 'ws://.../websocket' failed: Error during WebSocket handshake: Unexpected response code: 400

Although the chat room still works, I still want to get rid of the error message

For your reference, below is the socket.io related code:

// I use angular.js as the front-end framework function Socket (socketFactory, $rootScope) {     var ioSocket = io.connect(window.location.host);     var socket = socketFactory({ioSocket : ioSocket});     return {         on: function (eventName, callback) {             socket.on(eventName, function () {                 var args = arguments;                 $rootScope.$apply(function () {                     callback.apply(socket, args);                 });             });         },         emit: function (eventName, data, callback) {             socket.emit(eventName, data, function () {                 var args = arguments;                 $rootScope.$apply(function () {                     if (callback) {                         callback.apply(socket, args);                     }                 });             });         }     }; } Socket.$inject = ['socketFactory', '$rootScope']; angular.module('core').factory('Socket', Socket);  Socket.on('new message', function (data) { ... }); 
</div
              
   
   

Список ответов

-1
 
vote
<Р> Просто понял, что мой сайт использует CloudFlare, проблема решена, так как я отключил прокси.
 

Just realized that my website is using CloudFlare, the problem is solved since I had disabled the proxy.

</div
 
 

Связанный проблема

6  Вложенный, если внутри каждого (шаблон руль в Express App)  ( Nested if inside each handlebars template in express app ) 
Этим утром я подумал, что наконец посмотрю на руль, бросая вместе быстрое приложение Express. Я наслаждаюсь этим до сих пор (и я думаю, что я предпочитаю руль...

2  Mongodb / Mongoose весовые записи с непустым полем  ( Mongodb mongoose weight records with non empty field ) 
У меня есть коллекция документов MongoDB. Я уже назначил веса к определенным полям, но мне нужно весить записи с любым непустым именем наверху. Я не хочу от...

1  Путь нужна модуль в узле JS Работа в Windows, но не в Linux  ( Path of require module in node js work in windows but not in linux ) 
У меня это в моем коде <Код> var queries = require('./Queries.js'); При запуске сервера узла в Windows CMD в порядке. Я клонировать пролей в сервере Li...

30  Как я могу использовать Nodejs с Windows 7? [закрыто]  ( How can i use nodejs with windows 7 ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> <Путь d = "M15 6.38A6.48 6.48 0 007.78. 04H-.02A6.49 6.49 0 002.05 ...

0  Как я могу хранить все неудачные тесты Mocha в массиве, чтобы вывести их после завершения теста? Испытания охватывают в нескольких файлах  ( How do i store all the failed mocha tests in an array to output them after the t ) 
Я в настоящее время вроде застрял на этой проблеме. Я совершенно нового для Nodejs и Mocha, но мне присваивалось взять все неудачные тесты, хранить их в масси...

0  Как получить удостоверение личности ответа сразу после отправки его  ( How to get answerinlinequery id immediately after sending it ) 
<код> app.inlineQuery(async (match, ctx) => { await ctx.answerInlineQuery([ { type: 'article', id: '1', title:...

0  Trufle Compile из строя  ( Truffle compile fails ) 
Всякий раз, когда я пытаюсь компилировать любое проект по прочности, используя солидность, специфически команду, как Trufle Complet, это дает мне ошибку Снима...

0  JWT-TypeError: не удается прочитать свойство «ID» undefined  ( Jwt typeerror cannot read property id of undefined ) 
Привет, я создаю проверку токена (JWT), и эта ошибка придумала здесь код jwt подписывающий токен: <код> if (user) { const payload = user._id ...

24  Как я могу отладить Gulpfile.js при запуске его с помощью Visual Studio Task Runner Explorer?  ( How can i debug gulpfile js when running it with visual studio task runner explo ) 
Как я могу отладить Gulpfile.js при запуске его с помощью Visual Studio Task Runner Explorer? Или может быть запущен другой способ глотания с Visual Studio та...

0  Скачать изображение из результатов API  ( Download image from api results ) 
Я создаю приложение, которое использует онлайн API для рерантива изображений на основе ключевого слова для поиска. Я запускаю петлю Foreach для рендеринга 12 ...

0  Команда STEART BOBLE не работает, когда добавляю новый файл JS  ( Stencil bundle command is not working when i add new js file ) 
Я добавил несколько файлов JS в моей теме (Track-CLI), а когда я запускаю stencil bundle COMMENT, ошибки JS получили бросок. Я пробовал удаление <код> app...

0  Должен ли я обрабатывать шланг / плохие слова маскировки на стороне сервера (или на стороне клиента) для достижения лучшей производительности?  ( Should i process slang bad words masking on server side or client side to achi ) 
Я разрабатываю в чате в чате в режиме реального времени и необходимость замаскировать плохие слова, которые клиент отправляет. Итак, теперь мне интересно пров...

0  Seneca Mongo Store Быстрый образец не работает в узле V8.17  ( Seneca mongo store quick sample wont work in node v8 17 ) 
Я использую быстрый пример ( https://github.com/senecajs/seneca -Монго-магазин ) Но это не сработало. Моя текущая настройка: <код> seneca 3.22 seneca-basi...

89  Как закончить сеанс в Expressjs  ( How to end a session in expressjs ) 
Я чувствую, что это должно быть похоронено где-то в документации, но я не могу его найти. Как вы закрываете или заканчиваются или убивают (что угодно) сеанс...

9  NPM Run Build всегда строит производство и никогда не развивается  ( Npm run build always builds production and never development ) 
На унаследованном проекте у меня есть, я пытаюсь получить команду сборки для создания версии, отличной от Production . Я попытался изменить псевдоним в раз...

Связанный проблема

6  Вложенный, если внутри каждого (шаблон руль в Express App) 
2  Mongodb / Mongoose весовые записи с непустым полем 
1  Путь нужна модуль в узле JS Работа в Windows, но не в Linux 
30  Как я могу использовать Nodejs с Windows 7? [закрыто] 
0  Как я могу хранить все неудачные тесты Mocha в массиве, чтобы вывести их после завершения теста? Испытания охватывают в нескольких файлах 
0  Как получить удостоверение личности ответа сразу после отправки его 
0  Trufle Compile из строя 
0  JWT-TypeError: не удается прочитать свойство «ID» undefined 
24  Как я могу отладить Gulpfile.js при запуске его с помощью Visual Studio Task Runner Explorer? 
0  Скачать изображение из результатов API 
0  Команда STEART BOBLE не работает, когда добавляю новый файл JS 
0  Должен ли я обрабатывать шланг / плохие слова маскировки на стороне сервера (или на стороне клиента) для достижения лучшей производительности? 
0  Seneca Mongo Store Быстрый образец не работает в узле V8.17 
89  Как закончить сеанс в Expressjs 
9  NPM Run Build всегда строит производство и никогда не развивается 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.