国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

PHP 的socket連接 workerman 的websocket 問(wèn)題!

zjfree
function SendSocketMsg(){
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
    $result = socket_connect($socket,'127.0.0.1', 2346);
    /*
    if ($result == false)
    {
        echo 'connect error!';
        return false;
    }
    */

    $msg = '@hello socket11111';
    if (socket_write($socket, $msg, strlen($msg)) === false)  
    {  
        echo "socket_write() failed: reason: " . socket_strerror(socket_last_error()) ."/n";  
        return false;
    }  

    //$recv_data = socket_read($socket,1024);
    socket_close ($socket);
    //return $recv_data;
}
SendSocketMsg();

workerman中 onConnect 可以觸發(fā),但沒(méi)有收到任何數(shù)據(jù),PHP代碼也沒(méi)有錯(cuò)誤。
使用HTML5 連接數(shù)據(jù)正常。

6895 1 0
1個(gè)回答

walkor 打賞

websocket服務(wù)需要用websocket協(xié)議連接,才能通訊。
就像http協(xié)議,你要用瀏覽器通過(guò)http協(xié)議取訪問(wèn),服務(wù)端才能正確收到。
msyql數(shù)據(jù)庫(kù)服務(wù),你要用mysql協(xié)議才能正確訪問(wèn)。

直接socket連,發(fā)的數(shù)據(jù)不符合websocket通訊協(xié)議,服務(wù)端自然無(wú)法識(shí)別你發(fā)的是什么,所以收不到。

如果直接socket連,可以直接基于tcp通訊,就不要用websocket協(xié)議,
new XXX('websocket://0.0.0.0:2346');
改成
new XXX('tcp://0.0.0.0:2346');
就可以通訊了,但是會(huì)有粘包問(wèn)題。
協(xié)議相關(guān)請(qǐng)參考workerman手冊(cè),或者網(wǎng)上看一些文章

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??