3
我有写入的CoffeeScript下面的代码,使得使用socket.io和的node.js的在服务器侧Socket.io不发射/接收事件,而使用名称空间
服务器
io.of("/room").authorization (handshakeData, callback) ->
#Check if authorized
callback(null,true)
.on 'connection', (socket) ->
console.log "connected!"
socket.emit 'newMessage', {msg: "Hello!!", type: 1}
socket.on 'sendMessage', (data) ->
@io.sockets.in("/room").emit 'newMessage', {msg: "New Message!!", type: 0}
客户
socket = io.connect '/'
socket.of("/room")
.on 'connect_failed', (reason) ->
console.log 'unable to connect to namespace', reason
.on 'connect', ->
console.log 'sucessfully established a connection with the namespace'
socket.on 'newMessage', (message) ->
console.log "Message received: #{message.msg}"
我的问题是,当我开始使用命名空间communi服务器和客户端之间的连接已停止工作。我没有找到任何类似于此的工作示例,所以我可能会做错事
感谢您快速的答案,帮助我了解如何命名空间的工作,但我有问题,当我尝试授权连接到一个命名空间。我尝试从socket.io维基(https://github.com/LearnBoost/socket.io/wiki/Authorizing#namespace-authorization)中学习一个示例,并在发射/接收事件时失败。连接似乎是成功的,因为事件被触发为“连接”,并且“成功建立与名称空间的连接”消息显示在客户端和服务器日志中 –
正如您在服务器端看到的,我使用的是作为参数接收的套接字在'连接'事件。 在客户端,我使用与用于连接服务器相同的对象 –
谢谢!现在一切正常。这个wiki有点混乱,我把一些代码从你那里拿走了! –