フロントエンド開発者用のミニマリストデモパッケージを作成して、Elixir/Phoenix APIサーバーとモバイルHTML5アプリの間で簡単にチャンネルを統合できる方法を探しています。レガシー)webappsはPhoenixのサービスを受けていません。フェニックスチャンネルに接続するための最小限のhtml/javascriptパッケージ
NB:Javascriptが私の友人ではありませんでした...
私は--no-brunch
で生成されたフェニックスのアプリでテストをやっています。 app.js
およびphoenix.js
はともにpriv/static/js/
に位置しています。
app.js
が含まれています
var socket = null
// Responds to a click on a "Connect" button on the GUI
function doConnect() {
socket = new Socket("/socket", {params: {token: "abc"}})
socket.connect()
let channel = socket.channel("user:anonymous", {})
channel.join()
.receive("ok", resp => { console.log("Joined successfully", resp) })
.receive("error", resp => { console.log("Unable to join", resp) })
}
...
// some other GUI callbacks
私は.html
ファイルに入れた場合:
<script src="<%= static_path(@conn, "/js/phoenix.js") %>"></script
<script src="<%= static_path(@conn, "/js/app.js") %>"></script>
私が削除した場合、私は、コンソールに一方
ReferenceError: Socket is not defined
を取得.html
からのphoenix.js
の包含とそれはのimport "./phoenix.js"
で、私はSyntaxError: import declarations may only appear at top level of a module
をコンソールに得る。
.js
のファイルはどこにありますか、どのようにそれらのファイルを使用して動作させるべきですか?
多分、関連する質問は:ブランチを使わないでチャンネルを使う方法ですか?