gpt4 book ai didi

node.js - EmberJS 全局 websocket 连接

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:53 25 4
gpt4 key购买 nike

我正在使用 EmberJS,并且尝试使用 websocket (socket.io) 从后端获取数据,因此我设置了此应用程序路由

  App.ApplicationRoute = Ember.Route.extend(
setupController: (controller, data) ->
store = @get 'store'
socket = io.connect "http://localhost:4000/orders" ## Line 4
socket.on "new_order", (order) ->
store.load(App.Order, order)
socket.on "new_billing", (bill) ->
store.load(App.Bill, bill)
socket.on "connected", ->
console.log "Ready"
model: ->
return { title: "Ordenes" }
actions:
markAsDone: (type, type_id) ->
# Send value to backend
socket.emit "confirm_" + type, ## Line 16
id: type_id
# Find record by id
if type == "order"
record = App.Order.find(type_id)
transition = "orders"
else if type == "bill"
record = App.Bill.find(type_id)
transition = "bills"
# Delete from store
record.then( (r) ->
r.deleteRecord()
)
# Display list of record type
@transitionTo(transition)
)

在第 4 行,当我点击“/”时,正在设置连接并正在获取对象,但是在我输入路线后,“/orders”对象不再被获取,并且在上面代码中的第 16 行,我无法使用套接字变量

Uncaught ReferenceError: socket is not defined

有更好的方法来管理这个吗?

最佳答案

所以使用可重用套接字的正确方法是将其设置在 Store 中

App.Store = DS.Store.extend(
revision: 12
adapter: adapter
socket: io.connect "http://localhost:4000/orders"
)

这样我就可以使用代码的任何部分访问它

socket = @get 'store.socket'

关于node.js - EmberJS 全局 websocket 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19896508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com