2015-07-10 134 views
4

我有以下情形:PHP套接字連接到TCP服務器

我有一個給定的程序,它提供一個JSON接口,我可以使用套接字連接來連接。由於我想將該接口集成到我的Web應用程序中,因此我試圖在服務器和客戶端之間使用PHP套接字進行通信。通信是雙向的,這意味着我的PHP客戶端向服務器發送請求,服務器也向我的PHP「客戶端」發送請求。我的PHP和JSON接口之間的連接沒有問題。唯一的問題是,因爲我不得不等待PHP端的請求,所以我必須在無限循環中運行它。我想'迴應'一些迴應,並要求我在沒有無限循環的情況下進入我的網絡應用程序。

我的問題是,是否有創建一個PHP文件的好方式,也可以:

  • 創建一個自己的套接字服務器,這樣我可以從我的Web應用程序發送的東西給它而不被滯留在無限循環
  • 我發送給它的東西可以被重定向到JSON服務器
  • 我從JSON服務器上獲取重定向到我的web應用程序

使用情況下,響應我有一個解f或者:我有一個NFC讀卡器,它爲我提供了卡(uniqueid)的功能和信息,並且它已連接到我的網絡。 JSON服務器向我發送「檢測到卡」請求,並以「允許」或「不允許」迴應。 (有無限循環無關緊要)

用例我沒有解決方案:我打開了我的Web應用程序,並且想要將「uniqueid」參數寫入輸入字段以將該卡分配給一個人。我想這樣做是這樣的: - 點擊按鈕「分配牌」 - 卡讀取器 持卡 - 寫UNIQUEID到輸入字段

我不想讓從Web應用程序的直接連接到JSON服務器。我想從Web應用程序到PHP服務器建立一個臨時連接,PHP服務器永久連接到JSON服務器。

我希望這是可以理解的。

+1

你看過websockets嗎?這將允許您保持從瀏覽器到Web服務器的連續雙向套接字。 – insanebits

+0

我剛剛說的和@insanebits一樣。你可能想結賬這個[教程](http://www.sanwebe.com/2013/05/chat-using-websocket-php-socket)瞭解更多詳情 – tftd

+0

哦,太棒了!這可能會有所幫助!我會看看。謝謝! –

回答

1

是的,你可以。在你的應用程序中使用Ratchet進行調查。它似乎符合你的要求。它通過Websockets進行雙向通信。

您的瀏覽器將連接到服務器中基於Ratchet的應用程序,該應用程序監聽某個端口,您將能夠使用該連接發送和接收消息。

另一種選擇是長輪詢。您可以在此StackOverflow answer(其中還包含Websockets)中瞭解更多信息。