kentbull

kentbull

Real Time Phoenix Errata P47: missing {} on channel creation causes blocking error

As of 2020-11-25 The syntax of channel.push(...) should be updated to include a second parameter.
As written the book states on page 47:

channel.push("ping")
    .receive(...)

This causes an error that precedes and prevents joining the channel in addition to preventing the reception of any messages back from the server:

A slight modification allows success:

channel.push("ping", {})
    .receive(...)

This error is likely due to a contract change in the Phoenix channel library.

Marked As Solved

sb8244

sb8244

Author of From Ruby to Elixir and Real-Time Phoenix

Hello,

Thanks for this report. You are correct. It looks like a change was introduced that assumes payload is an object, although the book uses it as undefined for that example.

I’m going to see if it’s intended that payload cannot be undefined.

Best,
Steve

Also Liked

sb8244

sb8244

Author of From Ruby to Elixir and Real-Time Phoenix

Hi @kentbull. I submitted a PR to Phoenix that was accepted. This should stop being an issue when the next patch of Phoenix 1.5 is released. When I first checked this bug out, I missed that the documentation still showed channel.push("event") as valid syntax.

kentbull

kentbull

That’s cool, I’m glad we caught it. Great book by the way, just finished Part 1 and am working on Part 2.

Where Next?

Popular Pragmatic Bookshelf topics Top

New
jeremyhuiskamp
Title: Web Development with Clojure, Third Edition, vB17.0 (p9) The create table guestbook syntax suggested doesn’t seem to be accepted ...
New
New
leba0495
Hello! Thanks for the great book. I was attempting the Trie (chap 17) exercises and for number 4 the solution provided for the autocorre...
New
fynn
This is as much a suggestion as a question, as a note for others. Locally the SGP30 wasn’t available, so I ordered a SGP40. On page 53, ...
New
adamwoolhether
I’m not quite sure what’s going on here, but I’m unable to have to containers successfully complete the Readiness/Liveness checks. I’m im...
New
brunogirin
When installing Cards as an editable package, I get the following error: ERROR: File “setup.py” not found. Directory cannot be installe...
New
taguniversalmachine
Hi, I am getting an error I cannot figure out on my test. I have what I think is the exact code from the book, other than I changed “us...
New
jonmac
The allprojects block listed on page 245 produces the following error when syncing gradle: “org.gradle.api.GradleScriptException: A prob...
New
roadbike
From page 13: On Python 3.7, you can install the libraries with pip by running these commands inside a Python venv using Visual Studio ...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1063 23582 394
New
PragmaticBookshelf
Stop developing web apps with yesterday’s tools. Today, developers are increasingly adopting Clojure as a web-development platform. See f...
New
PragmaticBookshelf
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that r...
New
PragmaticBookshelf
Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single...
New
PragmaticBookshelf
Author Spotlight: VM Brasseur @vmbrasseur We have a treat for you today! We turn the spotlight onto Open Source as we sit down with V...
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
AstonJ
Curious what kind of results others are getting, I think actually prefer the 7B model to the 32B model, not only is it faster but the qua...
New
PragmaticBookshelf
Use advanced functional programming principles, practical Domain-Driven Design techniques, and production-ready Elixir code to build scal...
New

Sub Categories: