2016-08-22 12 views
0

私はソケットを持っています。私はheader.phpからソケットにログインします。私はこのように私のすべてのページからheader.phpを呼んでいる: Socket.ioとPHPの統合

<?php 
require_once("header.php"); 
?> 

私は私のソケットが切断して再接続しようとしている。このようなすべてのページを読み込む

。ソケット上で一度だけログインしたいのですが、どうすればいいのでしょうか。切断や再接続を防ぐにはどうすればよいですか?

header.php JavaScriptのコードブロックは:

<script src='http://xxx.xxx.xx.xx:1xx0/socket.io/socket.io.js'></script> 
<script>  
var socket = io.connect("http://xxx.xxx.xx.xx:1xx0/"); 
</script> 

答えて

1

短い答えは、あなたができないです。 Webサーバーは、各ページの読み込みを新しく開始します。あなたのソケットと永続的な接続をしたいのであれば、サーバー上のphp cliアプリケーションでそれを行い、Webソケットなどを使ってブラウザと通信してください。

+0

どうすればいいですか? –

+0

@MuhammedAlmaz。その答えがわからないが、おそらく一つの方法です。 AJAXを使用できますが、wsは涼しいです (1)websocketサーバー(wss)を起動します。 CLIの下で実行されるPHPでは、Webサーバーがロードされて終了すると永続的になります。 (2)PHPソケットアプリケーションがwss onconnectメソッドをハングアップします。 (3)htmlページが読み込まれ、jssによってwssサーバーに接続されます。 document.addEventListener( 'DOMContentLoaded' 関数wsinit(){ ソケット=新規のWebSocket( 'WS://127.0.0.1:8001 /');} (4)ここで、Uは、間の非同期永続的なリンクを持っているあなた(5)あなたのアプリはあなたのextソケットなどにログインします。 – Berniev