New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XHR Polling Error appears when debugger is present #1097
Comments
UPDATE: After finally testing one of my applications on my iPhone with socket.io-client, I have been fortunate not to come across the XHR Polling error. I am still, however, experiencing this error on a regular node app. |
I'm currently having the same issue with my node application too. I use built-in server of socket.io and it seems to work fine in browser but in node app socket.io-client throws the same 503 xhr poll error above. I'm running server and client on the same machine but connecting to loopback or local network address from client application is not working. I'm using version |
l also see this error in version |
I've solved my problem a week ago by refactoring but I don't remember what exactly solved the problem. Sorry for that, I had a busy week and that was the initial commit. You can try setting
I had too complicated socket and action binding logic before I refactored the code. So make sure your socket logic in your code is working and make it simpler to debug. |
I'll try the we transport. For now I've downgraded to 1.7.4 and all seems to work. |
Yes I down version from 2.0.1 to 1.7.4 fix this |
So I've upgraded back to io(`localhost:8080`, {
transports: [ 'websocket' ],
upgrade: false
}); Now my only problem is that the websocket transport is broken for web worker scopes. I think I've identified the problem and opened a corresponding issue on |
Is there any error thrown? Could you run with debug enabled? ( Regarding react-native, that may be linked to #1114. |
@darrachequesne So I just reverted to default transports on my server side client component. My mistake there... The polling transport is definitely working for me. The issue I had was with my self signed ssl certs for local dev. I had to add The web worker issue is real though. socketio/engine.io-client#569 |
try this require('socket.io-client')('http://localhost', {
rejectUnauthorized: false,
}) |
Thanks I'll try it
----- 原始邮件 -----
发件人:Zetsin <notifications@github.com>
收件人:"socketio/socket.io-client" <socket.io-client@noreply.github.com>
抄送人:Wangzhiqiang <dennyalice2008@sina.cn>, Comment <comment@noreply.github.com>
主题:Re: [socketio/socket.io-client] XHR Polling Error appears when debugger is present (#1097)
日期:2017年05月20日 16点22分
try this
require('socket.io-client')('http://localhost', {
rejectUnauthorized: false,
})
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
I have the same issue. Then I change my client code to require('socket.io-client')('wss://myserver:port/ws', { transports: ['websocket'], rejectUnauthorized: false }); But now, I get a 404 error response. The log show that there is an additional { Error: unexpected server response (404)
at ClientRequest._req.on (/Users/chris/Projects/nationsky/mgmt-server/backend/node_modules/ws/lib/WebSocket.js:650:26)
at emitOne (events.js:115:13)
at ClientRequest.emit (events.js:210:7)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:564:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
at TLSSocket.socketOnData (_http_client.js:453:20)
at emitOne (events.js:115:13)
at TLSSocket.emit (events.js:210:7)
at addChunk (_stream_readable.js:252:12)
at readableAddChunk (_stream_readable.js:239:11)
type: 'error',
target:
WebSocket {
domain: null,
_events: [Object],
_eventsCount: 4,
_maxListeners: undefined,
readyState: 0,
bytesReceived: 0,
extensions: {},
protocol: '',
_binaryType: 'arraybuffer',
_finalize: [Function: bound finalize],
_finalizeCalled: false,
_closeMessage: null,
_closeTimer: null,
_closeCode: null,
_receiver: null,
_sender: null,
_socket: null,
_ultron: null,
protocolVersion: 13,
_isServer: false,
url: 'wss://myserver:port/socket.io/?access_token=HnbtDUEWu1i1HVrAn-DO9YOL6GZxoittWAf8Sz_RR0s&EIO=3&transport=websocket',
_req: [Object] } } } |
For me it appears even if debugger in not present |
Hi! i had the same problem while i was trying to connect from a Node.js app to the server, here's my code: const socket = require('socket.io-client')('https://domain.com') The log that i got running
When i tried connect from a browser to const socket = require('socket.io-client')('https://domain.com', { rejectUnauthorized: false }) And it worked, but it's weird, i have valid certs from Let's Encrypt, or it's normal? anyway.. i added the const socket = require('socket.io-client')('https://domain.com', {
transports: ['websocket'],
rejectUnauthorized: false
}) Thanks @ibrahimduran and @SupremeTechnopriest 😄 My apologies if i wrote like Tarzan 😅 i working on my english haha |
I've had this issue and I spent 2 hours on this, turns out it's just specifying your options correctly. Here is how you should specify them :
[1] If you don't specify whether to use http or https , it defaults to https . Or if you dont specify the port right after the url as "url.com:port" it defaults to 80 or 443 depending on the protocol. I've seen some stackoverflow answers that have port specified as an option in the options object. I've looked into the code and there is no such option. You need to include the port in the url. [2] And also, I set the agent to true and it failed to establish a ws connection and there was no error, it simply timed out. Just don't specify the agent at all. It defaults to false. |
@teja42 I tried fixing this problem for 2 days. I thought it was a bundling issue with webpack but your solution worked wonderfully. Thanks! |
Hi ! I've had the same problem and fixed downgrading from 2.0.1 to 1.7.4 as @SupremeTechnopriest told and all works fine ! thanks ! |
Hi, I still have this problem trying on Android 8.1 :( Pseudocode:
The application goes into 'connection_error' event and logs "Error: websocket error" "react-native": "0.57.4", Any suggestions? |
Facing same issue
|
I am facing the same issue any update on it? |
+1 for that |
I had this issue due to |
Hi all. So I'm using PM2 cluster for my node express server and using redis adapter: const redis = require('socket.io-redis')
io.adapter(redis(config.redis)) For browser clients this seems fine, but for socket.io-client I get: { Error: xhr post error
at XHR.Transport.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transport.js:67:13)
at Request.<anonymous> (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:111:10)
at Request.Emitter.emit (/home/user/Desktop/nodeclienttest/node_modules/component-emitter/index.js:133:20)
at Request.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:311:8)
at Timeout._onTimeout (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:258:18)
at listOnTimeout (timers.js:327:15)
at processTimers (timers.js:271:5) type: 'TransportError', description: 400 }
{ Error: xhr poll error
at XHR.Transport.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transport.js:67:13)
at Request.<anonymous> (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:130:10)
at Request.Emitter.emit (/home/user/Desktop/nodeclienttest/node_modules/component-emitter/index.js:133:20)
at Request.onError (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:311:8)
at Timeout._onTimeout (/home/user/Desktop/nodeclienttest/node_modules/engine.io-client/lib/transports/polling-xhr.js:258:18)
at listOnTimeout (timers.js:327:15)
at processTimers (timers.js:271:5) type: 'TransportError', description: 400 } If I change client code to use websocket transport it all works fine. var socket = require("socket.io-client")("http://localhost:8080", { transports: ['websocket'] }); The problem is I don't want to require this code change to all client code. My recommendation is to change socket.io-client to attempt websocket transport if xhr polling transport is failing. What do you think? |
try last version from github, like this, solved my issues with RN android:
Cheers |
I know this solution is going to sound a bit odd, but I got here by googling this error. In my case I was getting this because my server wasn't running (I thought it was). Hope that helps someone else :) |
Thanks, I was having problems to connect to my server from a node application an this solution worked fine for me. |
|
I'm using both socket.io and socket.io-client at version 2.3.0. |
Same issue.Do you resolve it? |
I resolve my problem by use the domain name. |
For future readers: Please check the documentation here: https://socket.io/docs/v3/client-initialization/#Options |
thanks |
ProblemI ran into the same problem while using a socket-io-client in E2E tests against a Nest.js WebSocketGateway backend API. const wsAddress = new URL("/ws/pvs", await app.getUrl());
// wsAddress.toString(): http://[::1]:44441/ws/pvs
const clientSocket = io(wsAddress.toString(), {
path: "/socket.io/",
withCredentials: true,
});
// => Error: xhr poll error SolutionUsing the IPv4 loopback adress works without errors: const wsAddress = new URL("/ws/pvs", await app.getUrl());
// http://[::1]:44441/ws/pvs
wsAddress.hostname = "127.0.0.1";
// wsAddress.toString(): http://127.0.0.1:44441/ws/pvs
const clientSocket = io(wsAddress.toString(), {
path: "/socket.io/",
withCredentials: true,
});
// => No connection errors :-) |
You want to:
Current behavior
I am experiencing trouble trying to make a web socket connection on react-native. I am not sure if this platform is supported or not, however, this error is reproducible on a regular node.js app. Strangely enough I only have trouble when react-native's built in debugger is disabled. I am testing this on IOS 10.2 with
react-native v0.43.1
andsocket.io-client v1.7.3
. My server is runningsocket.io v1.7.2
hosted on HTTP port 1337.Steps to reproduce (if the current behaviour is a bug)
As soon as I implement
socket.io-client
in react-native and attempt a connection without the debugger enabled, it should reproduce with two errors based on the options. If I do not specify my transports option then the error would beXHR: POLLING ERROR
. If I specify 'websocket' in my transports option then the error would becomeWEBSOCKET ERROR
. Thats all I get.Expected behavior
Regular web socket connection to my server. It works with the debugger enabled.
Setup
Other information (e.g. stacktraces, related issues, suggestions how to fix)
The only other issue I found related to this one was #1056 and I am surprised about how oddly related these issues are. I have retried the scenario on a regular node.js app and I experienced similar outcomes, however the errors were more detailed as shown below.
Without a specified transports option:
With
transports: ['websocket']
:Also keep in mind, socket.io's browser-based client works flawlessly connecting to this specific web server.
I have tried various different networks, ISP's, and even VPN's. I am clueless at this point.
The text was updated successfully, but these errors were encountered: