I've been playing around with the SuperWebSocket code, pretty cool stuff, but I'm not sure why we really need to set the path at the end of the url as in:
ws = new WebSocket('ws://<%= Request.Url.Host %>:<%= WebSocketPort %>/sample');
I left the 'sample' at the end out from the url and it still works. Why do we need it at all? I didn't see anywhere in the code where it was used except for some logging.
Can someone shed some light on the 'session.Path' thing?
Thanks much,
The path part of the URL is so that you could have different WebSocket server applications running on the same port. In other words, WebSocket connections default to 80 and 443 in order to use existing infrastructure and network configuration. However, you still might want to serve multiple WebSocket applications so that is what the path is for. If you only have a single application running on that port, then you can ignore the path.
Related
In my current setup I have two interfaces, one is my normal connection and the other for my VPN, which is the default interface.
My VPN isn't nearly as fast as my connection so for some heavier load I use my normal connection. The problem I am having is that I want to send files to Google Drive by using their api via CMD, but googleapis.com simply resolves to too many IP's to route them all. Currently I am solving this issue by connecting through a proxy so I only have to route that proxy to my normal interface.
What I would rather do is just set the interface of my normal connection to the CMD session like I do with the proxy. I have tried playing around with netsh but so far with no success.
Does anyone have an idea on how to solve this problem?
It isn;t that your VPN is your "Default Interface" it's that it has a Lower Route Metric for Traffic because whoever set it up made it so that all traffic routes t the VPN instead of only internal traffic.
If this is intentional, and you don;t want to change it then your only real option is to use a Proxy as you need to be able to sniff the packet headers to match the API URL, and it's it's HTTPS traffic, that is encrypted, and only passing through a proxy will be able to get around that.
I have set up a squid proxy on EC2, and I'm trying to use it from behind a corporate firewall. After configuring firefox to use my proxy, I tried to surf to yahoo.com. The browser seems to hang as if handling an extremely long running request. Checking the squid logs I see:
1431354246.891 11645 xxx.0.xx.xxx TCP_MISS/200 7150 CONNECT www.yahoo.com:443 username HIER_DIRECT/xx.xxx.XX.xx-
So far, I don't have a good explanation of most of these entries , but from http://wiki.squid-cache.org/SquidFaq/SquidLogs#access.log , I've found that:
MISS = The response object delivered was the network response object.
What does this mean? Is anything I can do to connect to the outside internet?
This has been asked a long time ago, but maybe someone can still use this...
This means you connected to squid and the request was made to yahoo using the TCP protocol that HTTP uses. Furthermore, the MISS means it's a cache miss, squid doesn't have this page stored.
The reason for the hanging might be caused by the response being caught somewhere along the line (corporate firewall, maybe? local firewall?) or even misconfiguration of the proxy.
For more, perhaps you should search on https://serverfault.com, for example this is a good starting point, then you can narrow down the problem: https://serverfault.com/questions/514716/whats-the-minimum-required-squid-config-to-make-a-public-proxy-server
I've literally searched the internet for the last 5 hours and I have tried every suggestion out there and I'm starting to wonder if what I want to do is simply not possible....
Most webservers only allow X simultaneous connections for uploading/downloading. I simply want to upload my many files faster, by connecting/uploading through various proxies. However, no program I can find has anything for automatic proxy configuration, and only for a specific proxy IP. I have an account with a proxy service that gives you a different IP address for every request/connection made through it. I can connect to this fine from any FTP program but it appears that the servers are confused when they see different IP's connecting, and there's no way to manually whitelist/authenticate them on the server side, so it simply closes all connections. I even have a list of IP addresses with port/user/pass that I am willing to use, but I can't figure out how to do anything other than use a specific proxy to upload/download from servers.... Is this even possible????
ANY HELP/INPUT IS GREATLY APPRECIATED!!
HI. in node.js, if it is http request, I can get the remoteAddress at req.connection.remoteAddress,
so, how to get it if https request? I find there is req.socket.remoteAddress but I'm not sure. Please advice. thanks.
It appears something is strange/broken indeed.
As of node 0.4.7, it seems http has remoteAddress available on:
req.connection.remoteAddress
req.socket.remoteAddress
on https, both of these are undefined, but
req.connection.socket.remoteAddress
does work.
That one isn't available on http though, so you need to check carefully.
I cannot imagine this behavior is intentional.
Since googling "express js ip" directly points to here, this is somehow relevant.
Express 3.0.0 alpha now offers a new way of retrieving IP adresses for client requests.
Simply use req.ip. If you're doing some proxy jiggery-pokery you might be interested in app.set("trust proxy", true); and req.ips.
I recommend you to read the whole discussion in the Express Google Group.
var ip = req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress;
Note that sometimes you can get more than one ip address in req.headers['x-forwarded-for'], specially when working with mobile phones accessing your server (wifi and carrier data).
As well req.headers['x-forwarded-for'] is easily manipulated so you need a properly configured proxy server.
Is better to check req.connection.remoteAddress against a list of known proxy servers before to go with req.headers['x-forwarded-for'].
I currently have a small socket server that I'm trying to convert to a web server. Basically it dumps XML to anyone connecting to it. At the moment, it's not a web server as it listens to a non-web port (1337).
I know that both 80 and 8080 are accepted web ports, but none of those are free on the machine I'm going to use. Are there any other web ports available? Or how do I configure a windows machine so that e.g. port 1337 is web?
Well for the most simplistic method append :port to your URL such as http://192.168.1.1:1337
I may be misunderstanding your question though.
You just start listening on the port. Viola. It's a server. That simple.
Oh, and you have to tell your audience which port to use.
To be more complete: it's a web server not because of the port, but because of the language spoken on that port. You can serve HTTP over any port, which is one of the ways back-door-style malware gets around misconfigured firewalls.
What you probably need is to implement (in order to implement an easily usable web service, which I assume is what you are aiming for) the http protocol and probably SOAP or REST, not select a port number. Tell us what language you are using, and we might be able to suggest a suitable framework.
What #fictoris said. Or setup your webserver to redirect http://myapp.com to the correct port as well.
There's nothing really magic about the ports you are talking about. And really it's just port 80 that's standard HTTP. 443 is the standard for secure HTTP though (HTTPS).
If you have to run on a non-standard port you must specify that port in every (non-relative) URL: http://localhost:13828 ...
If you need to use port 80 you might be able to redirect the incoming client depending on what demain it requested though.
Here is a list of all the TCP/UDP ports that have official designations and the hi-jacked, oh I mean unofficial ports that are known. Hopefully that will give you an idea of what is going on "out there."
Note the "Dynamic, private or ephemeral ports: 49152–65535" section at the bottom.