質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

解決済

1回答

2995閲覧

Websocketで特定のURLにプロキシ経由で接続したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

0クリップ

投稿2020/02/09 06:53

編集2020/02/15 01:39

nose.jsでws(WebSocket)を使ってプロキシ経由で特定のサイトに接続したいです。

したいこと:
node.js → ws → プロキシ使用 → 特定のサイトに接続 → sendでデータを送る
ということをしたいです。

プロキシに関してはまだまだ未熟なのでそこも含めて詳しく回答して頂けると幸いです。
よろしくお願いします。

ソースコード

// *** モジュールのインクルード *** // const proxyAgent = require('proxy-agent'); const request = require('request'); const WebSocket = require('ws'); // *** プロキシの設定 *** // let allProxyAgents = []; let proxyAgents = []; function getProxy() { if (proxyAgents.length == 0) { proxyAgents = allProxyAgents; } return proxyAgents.shift(); } // *** プロキシの一覧を取得 *** // function getProxys() { console.log(`プロキシの一覧を取得中...`); request('https://www.proxy-list.download/api/v1/get?type=socks5', (err, req, body) => { let proxies = body.replace(/\r/g, '').split('\n'); proxies.forEach(proxy => { allProxyAgents.push(new proxyAgent(`socks://${proxy}`)); }); console.log(`${proxies.length}個のプロキシが接続可能です。`); }); } // *** 接続 *** // console.log('接続中...'); ws = new WebSocket(/*URL?*/, { origin: /*???*/, rejectUnauthorized: false, agent: getProxy() }); ws.on('close', function () { console.error('終了しました。'); });

追記:
スマホからの入力なので文章が見にくいかもしれません。
すいません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2020/02/11 08:30

現状の質問だと、「丸投げ」と評価される可能性が高いので、ご自身でできるところまで記載したコードや調べたこと・試したことを質問に追記していただけないでしょうか。
退会済みユーザー

退会済みユーザー

2020/02/15 01:39

失礼しました。ソースコードを追加しました。
dodox86

2020/02/15 01:44

プロキシサーバーにもよるんじゃないんでしょうか。全てのプロキシサーバーがWebSocketのプロトコルを通したり、ずっと繋ぎっぱなしで動けるとも思えませんが。
dodox86

2020/02/15 01:47

まず、squidなどのプロキシサーバーを自分で立ててみて、WebSocketを通せるかを検証してみるのも手です。(回答未満なのでコメントのみです)
退会済みユーザー

退会済みユーザー

2020/02/15 23:29

分かりました。
guest

回答1

0

ベストアンサー

とりあえず、自己解決にして自分の力でやってみます。
皆さんありがとうございました。

投稿2020/02/15 23:30

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問