RubbyMotion에서 WebSocket 사용
2617 단어 RubyMotioniOS
서버 측(nodejs)
이번에는 서버를 간단하게 만들기 위해 nodejs의 ws 모듈을 사용합니다.
ws: a node.js websocket implementation
s
nodejs가 있으면 npm로 간단하게 설치합니다.
npm install -g ws
설치 후 wscat이라는 유틸리티를 설치합니다. 이 유틸리티를 사용하면 웹소켓의 수발 테스트를 간단하게 할 수 있습니다.포트 8080에서 서버 모드로 수신합니다.
wscat -l 8080
이렇게 간단한 송수신 서버가 완성됐습니다.
클라이언트(iOS)
Socket Rocket이라는 프레임워크를 사용합니다.코코프즈에서는 설치가 간단하기 때문이다.자~ 의자~ 그래.
SocketRocket Objective-C WebSocket Client
# motion-cocoapdsインストール時
app.pods do
pod 'SocketRocket'
end
Rake pod:install코드는 SRWebSocket 및 delegate를 생성합니다.
주: 실제로는 Storyborad를 통해 UI를 만들고 IB를 통해 연결하며 myMessage는 UItextField와 연결합니다.또한 ProMotion을 사용하기 때문에load에 초기화 코드가 쓰여 있습니다.
class MainScreen < PM::Screen
extend IB
outlet :myMessage, UITextField
def on_load #ProMotion初期化
url = NSURL.URLWithString("ws://127.0.0.1:8080")
@socket = SRWebSocket.alloc.initWithURLRequest(NSURLRequest.requestWithURL(url))
@socket.delegate = self
@socket.open
end
def sendMessage #メッセージ送信
p "Send: #{myMessage.text}"
@socket.send(myMessage.text)
myMessage.text = ""
end
def webSocketDidOpen(webSocket)
p "Socket Open!"
end
def webSocket(webSocket, didReceiveMessage:message)
p "Receive: #{message.description}"
end
def webSocket(webSocket, didFailWithError:error)
p "Error : #{error.description}"
end
def webSocket(webSocket, didCloseWithCode:code,reason:reason)
p "Close"
end
end
동작 테스트
nodejs에서 제작한 서버 옆에 텍스트를 입력하면 고객이 받습니다.또한 문자열을 보내면 서버에 보냅니다.잘 진행되지 않으면 포트와 IP를 기다리십시오.
이 결정 프로토콜을 잘 사용하면 서버에서 추측되는 실시간 동작에 대응할 수 있을 것 같습니다.잘했어.
확장성
서버 연결 상태 오류 표시 등 Notice View를 추가하면 멋있을 거라고 스스로 필기했다.
notice = WBErrorNoticeView.errorNoticeInView(self.view,
title:"Socket Error", message:"Check your network connection.")
notice.show
NoticeView A TweetBot-like notice component for iOS.
Reference
이 문제에 관하여(RubbyMotion에서 WebSocket 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bellx2/items/84bbcdcaf1b37b5483f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)