-1

I got an error that I can't understand how to solve. I am making chat application API using websocket. When I test on Postman it gives me an error which I mentioned in the above title. Tell me how to solve this error? Is there any version error or something? I cleared cache but nothing changes:

Error: Unexpected server response: 405 in postman when I try to connect websockets

My code is:

ws://127.0.0.1:8000/api/save-chat

Controller

public function saveChat(Request $request)
{
    $chat = Chat::create([
        'sender_id' => $request->sender_id,
        'receiver_id' => $request->receiver_id,
        'message' => $request->message,
    ]);

    event(new ChatMessage($chat));
}

Route

Route::post('/save-chat',[ChatController::class,'saveChat']);

Event code


class ChatMessage implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    private $chatData;
    public function __construct($chatData)
    {
        //
        $this->chatData = $chatData;

    }

    public function broadcastWith()
    {

    return ['chat'=>$this->chatData];

    }
    public function broadcastAs(){

        return 'getChatMessage';

    }
    /**
     * Get the channels the event should broadcast on.
     *
     * @return array
     */
    //this is channel
    public function broadcastOn()
    {
        return new Channel('broadcast-message');

    }

Error on postman

Error: Unexpected server response: 405
Handshake Details
Request URL: http://127.0.0.1:8000/api/save-chat
Request Method: GET
Status Code: 405 Method Not Allowed
Request Headers
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: hidden
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Host: 127.0.0.1:8000
Response Headers
Host: 127.0.0.1:8000
Date: Sun, 13 Aug 2023 15:28:34 GMT
Connection: close
X-Powered-By: PHP/8.1.12
allow: POST
Cache-Control: no-cache, private
date: Sun, 13 Aug 2023 15:28:34 GMT
Content-Type: text/html; charset=UTF-8
Access-Control-Allow-Origin: *

Karl Hill
  • 12,937
  • 5
  • 58
  • 95
  • In postman, did you change the method from `GET` to `POST`? As seen in the error and your route. Your route is expecting a `POST` method but submitting a `GET` method. – Mr. Kenneth Aug 14 '23 at 00:11
  • when we choose websockets in postman it doesnot show any dropdown to select method I think its by default – Afshal Sajid Aug 14 '23 at 10:28

0 Answers0