odipus

odipus

Before i try to build a ios app with phoenix as backend server I have a question. So, I am going to build a demo ios messaging app that will use phoenix channels and I havent found much info on the web so if you guys have done something like this can u tell me

I am going to build an ios chat app that will be using phoenix. So if any of you guys have experience with it, can you please clear some of my questions?

  • What are the pitfalls/limitations when using phoenix websocket with ios apps
  • Do I have to make any changes in the phoenix channel side to get websocket working for ios apps?
  • Any tutorial that I can go to, to connect phoenix websocket and ios app?

Showing Posts 1 to 6

outlog

outlog

check out GitHub - davidstump/SwiftPhoenixClient: Connect your Phoenix and iOS applications through WebSockets! · GitHub if you are going for swift ios app.. it includes a basic example and link to more advanced ones…

personally I use phoenix channels for my ios/android apps - though I use react native - so I actually use the standard phoenix.js implementation - works great!

I run everything over the channels (except initial login that is a normal POST).. no issues, works wonderfully..

kaashyapan

kaashyapan

How has been your battery consumption and performance on spotty connections ?

ericf

ericf

I am considering a similar model, any more details or advice you can offer on using ReactNative with Phoenix.js and Elixir/Phoenix?

outlog

outlog

It works super great.

I use http(s) for the login and getting a token.

then phoenix.js is used in a class PhxService.

with a start function that takes the token and connects the websocket and two channels (user and public).

I have this in the join function:
Process.send_after(self(), :after_join, 10)

which then sends over all the data the app needs - which goes into the different redux reducers (or whatever they are called), so entire app is hydrated.

In PhxService you then have functions for making calls over the different channels, and getting response back, same for message received that then fires of redux-observable events.

this is of course an overview - I use rxjs and redux-observable to tame it all - but surely equally good and simpler solutions exists today.

ericf

ericf

Thanks for the response!

outlog

outlog

      this.channel.on("new_chat", payload => {
        store.dispatch({
          type: "NEW_CHAT",
          payload: payload
        });
      });

this is with observables - but just return normally to where you are calling from..

  callApi(apiName, body) {
     if (this.channel) {
        this.channel
          .push(apiName, body || {}, 44000)
          .receive("ok", msg => {
            observer.next(msg);
            observer.complete();
          })
          .receive("error", resp => {
            observer.error(resp);
            observer.complete();
          })
          .receive("timeout", () => {
            observer.error("timeout");
            observer.complete();
          });
}
else {
        return observer.error("no_channel");
      }
}
— All posts loaded —

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
Onor.io
I have what I’ve heard referred to as a “lookup table” in my database. This is a way of assigning codes to common values. One common lo...
New
Trolleger
What approach to take when sending live updates to “random” users Hi! I have a question, I have a little chat app, and when I create a DM...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
matt-savvy
Anyone here using Honeybadger? My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of Bandit.HTTPError...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews