英文:
Golang: html pages and GO communication
问题
除了模板之外,是否有其他方法可以在Go和HTML页面之间进行通信?可以使用类似postmessage的方式吗?
场景:使用Twitter Streaming API
使用Streaming API调用,根据可用的新内容进行更新;
希望将网页更新为最新内容,同时保留原始内容。
希望避免使用NaCl...因为它只适用于Chrome浏览器。
英文:
Is there a way other than templates to communicate between Go and html pages ? Using something like postmessages ?
Scenario ::--> Streaming Twitter Api
Streaming api call, updates with new content as and when available;
Want to update the web page with the latest content, keeping the original content as it is.
Want to avoid using NaCl... As it is only for chrome
答案1
得分: 1
你可以使用Websockets(WebSocket@Wikipedia)。
以下是两个实现:
golang.org/x/net/websocket
github.com/gorilla/websocket
这是一个详尽的其他Websocket包/实现的列表:
godoc.org websocket搜索
英文:
You can use websockets (WebSocket@Wikipedia).
Here are 2 implementations:
And here is an exhausting list of other websocket packages/implementations:
答案2
得分: 1
使用websockets或server sent events将事件从服务器推送到浏览器客户端。
对于websockets,请使用gorilla/websocket包。也可以使用x/net/websocket包,但它的协议部分实现不适用于最新版本的Chrome。
Server sent events非常简单,不需要真正的辅助包。请参考这个示例开始使用server sent events。
英文:
Use websockets or server sent events to push events from the server to the browser client.
Use the gorilla/websocket package for websockets. The x/net/websocket package is also available, but it's partial implementation of the protocol does not work with recent versions of Chrome.
Server sent events are so simple that a helper package is not really needed. See this example to get started with server sent events.
答案3
得分: 1
这不是关于Go语言的问题。客户端即浏览器必须能够处理持久连接,所以这里没有什么新的东西。你可以使用以下技术:
- 对于旧版浏览器,可以使用长轮询(Long-polling)。
- 对于现代浏览器,可以使用Websockets。
- 对于明天的技术(即不包括IE浏览器),可以使用服务器发送事件(Server-sent-events)。
- 对于移动平台,可以使用Google和Apple提供的推送服务。
这些技术都可以在Go语言的服务器端轻松实现,没有什么复杂的地方。
英文:
It's not about Go. Client side i.e. browser must be capable to handle persistent connection. So nothing new here. You have
- Long-polling for older browsers
- Websockets for modern browsers
- Server-sent-events for tomorrow (to say, excluding IE, them holds even
now) - Push-services provided by Google and Apple for mobile platforms
Either technics can be easily implemented with Go on server side. Nothing tricky.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论