元スレ+ JavaScript の質問用スレッド vol.94 +
JavaScript覧 / PC版 /みんなの評価 :
401 = :
node.jsってプッシュだっけ?
なんでnode.js使わないのか教えてくれ、根本的にはnode.jsと同じになりそうだから
クライアント側のjavascriptだけでやるってことか?
Ajaxみたいにこっちからアクセスするだけで、プッシュはされないみたいな
402 :
>>385
自分は専門学校の一般教養でweb全般教えてて
JSも、そういうのがあるんだよと触れる程度なんであれだが
ピュアJSでイチからやらせる時間も余裕も無いのでjQuery使わせてる
ホントはオブジェクトとプロパティが云々、ってじっくりやりたいんだけど時間もないし
そんなこと話し出したら、学生のモニタはtwitterとニコニコ動画だらけになる
ちょちょいと書いてヌルヌル動くインパクトがないと学生が飽きちゃうんだよなー
403 = :
>>400
それだとサーバーのファイルがどーなったかわからないから
10秒に1回とか更新確認するようなやり方しかなくね?
404 = :
>>400
クライアントサイドだけでどうやって相手のIPを知るの?
405 = :
PHPとかも使用しないのか?
それだったら無理だろチャットなんて
どこにチャットの文章をPOSTすればいいんだ
406 = :
window1の俺とwindow2の俺とでチャット
407 = :
>>400
クライアント同士は繋がってないんだよ。それをサーバが中継するわけ。
408 = :
>>406
交換日記でもしてろよ
409 = :
できるよ
まずサーバーの代わりになるページを自分のPCで立ち上げておいて
なんらしかのP2PAPIで自分にアクセスして貰う
つまりWEBページ上のJavaScriptで仲介サーバーの代わりをする
410 = :
例えばPHP+javascriptだったらcometで出来ますよね
<?php
while(1){
// ここで待機処理。文字列を受信したら皆に文字列を送信したりする所
sleep(1);
}?>
こんな感じで。
んで、チャットってインプットエリアからクライアントで文字列をサーバに送りますよね
クライアントからhttp://localhost/post.phpに送信するとしますね
そしたらサーバがクライアントに文字列をプッシュさせる
これだけがしたいのですよ
411 = :
412 = :
一応、クライアント同士のチャットなら個人のPCに簡易サーバ立てるだけでPHPでもできるんですが
これをサーバサイドでやる場合はnode.jsでやるのが定番じゃないですか
でも一般的なレンタルサーバではnode.jsなんて入ってないですよね
なのでなんとかやりたいんですが
そこでwebSocketしか選択肢はないでしょうか?
413 = :
入力中に取得したレス>>401-411今から読みます
414 = :
プッシュ自体は単純だがマッチングがどうなってるかが大事
415 = :
前から何度か、サーバサイドなしでチャット!サーバサイドなしでチャット!って言ってるのは同じ人?
416 = :
>>414
プッシュってPHPとかでも出来んの?
417 = :
質問者は何が聞きたいの?
ウェブソケットが良いのか、もっと良いものがあるのか聞きたいの?
プッシュの部分だけ解決できたらいいの?
418 = :
>>415
俺が一回聞いたわ
それだけ需要があるんだよ
419 = :
>>415
僕はプログラム板の住民でnode.jsでやっててこれからクライアントでやりたいと思ってweb制作板に来たので別人ですね
420 = :
ちょっと質問者とは別だが質問させてくれ
例えば500KBのtextファイルがあったとして、それについてのプッシュ待機と1分間に1回更新ってどっちの方がサーバーへの負荷少ない?
421 = :
>>417
YES
つまりクライアントで非同期でチャットやるならajaxで通信するのが王道になってるじゃないですか
でもajaxだと定期的にサーバにチェックしにいくから無駄じゃないですか
これ無駄なのでnode.jsみたいに送信したときにプッシュできればいいんですよ
422 = :
普通にやると待機の方が負荷かかるから
いろいろ負荷が少なくなる方法が考えられてる
それらをどう使うかしだい
423 = :
コテハンがはずれたけど>>421は自分
>>420
1分毎に500kbだとモバイル回線が死んじゃう
424 = :
そのくらいでしぬわけねえだろ
426 = :
プッシュだけが問題なら
すぐウェブソケット使えばいいじゃん
それで解決解決
427 = :
でもWebSocketで仕様が固まってないから怖いじゃないですか
428 = :
もうあの騒動終わってあらかた固まったからまたブラウザも対応始めただろ
もう使い始めていいころ、それがいやならコメットとかシコシコ使うしかない
429 = :
あの騒動ってなに
430 = :
あの、その、例の騒動っす
431 = :
>>421
EventSourceオススメ
432 = :
騒動なんて無かったんや…
433 = :
>>431
素晴らしい!
ベストアンサーに認定します
434 = :
とりあえずさくっと作れたので解決できました
435 = :
でも400はサーバーサイドは何もしたくない
つまりただの中継役として使いたいわけだよね
まずマッチングはどうするの?
あとサーバーをずっと起こしたまま全員を常に繋ぎとめておいてそういう事がしたいんだよね?
それはかなり難しいかも
本当にサーバーをあまり複雑に使いたくないのならNode.jsにするか
409みたいな案しかないと思う
一番簡単なのは諦めることだけど
436 = :
サーバーが絡む場合は
環境をバージョンまで含めて明確に指定してくれないと
こちらもなかなか明確な回答が出せない
437 = :
得に相談事はそこを注意してくれると助かる
そこが曖昧だとあれもこれもいいんじゃないって感じになって
質問者も回答者も何がいいのか結局わからずに終わってしまう
そしてそこに付け込んで荒らしがでる
なるべくスパッと回答してすぐ終わるような質問をしてほしい
438 = :
(3) 長い間連続して質問する場合にレス番を名前にしてあれば、質問の流れが回答者に伝わりやすくなります。
↓
(3) 長い間連続して質問する場合にはトリップを付けるよう心掛けてください。
439 = :
レス番号を付けてくれた方が
440 = :
んじゃあレス番号にトリップで
441 = :
それだとレス番号でポップアップできなくなるからさ
442 = :
うわServer-sent Eventsっ使ったら数秒おきにサーバと通信して無駄なパケット増えるからajaxと変わんないじゃない
443 = :
やっぱnode.jsでやれってことだな
どうもな!
444 = :
今更付けてどうする
レス番号付きでageればOK
445 = :
ageても日をまたいだらID変わるだろ
446 = :
pushって転送量どうなんだろうか
a.txt(100byte)が更新されてa.txt(200byte)になったとする
そしたら最初の読み込みで100byte転送されてその後更新されたら200byte転送されるだけでOK?
447 = :
>>446
それはサーバがクライアントに送信する次第だろう
データ丸丸おくるようにサーバ側のプログラムで書くか更新分だけ送るかの違い
448 = :
<p>あああああああああああああ</p>
↑がブラウザに表示されているときの文字列のサイズをpxで取得する方法はありませんか?
マージン部分とパディング部分を別に文字列の部分のみ取得したいのですがそういのはjavascriptじゃできないでしょうか
449 = :
>>448
computedStyleからfontSizeを取得すれば?実際に幅を計測して、、という感じではないが。
450 = :
インライン要素しか含まないならばできるよ。
<p id="aaa" style="padding: 3em; font-size: 3em;">あああああああああああああ</p>
var getWidth = function(elem) {
var span = document.createElement("span");
// elem の子要素を span に移動。
var fc;
while ((fc = elem.firstChild)) {
span.insertBefore(fc, null);
}
// span の padding を 0 にして elem に追加。
span.style.padding = "0";
elem.insertBefore(span, null);
// 幅取得。
var width = span.clientWidth;
// 後掃除。
while ((fc = span.firstChild)) {
elem.insertBefore(fc, null);
}
span.parentNode.removeChild(span);
return width;
};
alert(getWidth(document.getElementById("aaa")));
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.98 + (1001) - [97%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.96 + (1001) - [97%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.95 + (1001) - [97%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.93 + (1001) - [97%] - 2012/1/1 4:46
- + JavaScript の質問用スレッド vol.93 + (1001) - [97%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.114 + (1001) - [95%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.142 + (984) - [95%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.142 + (926) - [95%] - 2019/12/23 13:15
トップメニューへ / →のくす牧場書庫について